C#
文章平均质量分 63
不脱发的牧码人
热爱网络!注重c#语言,当然,我也很喜欢前端!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vs中版本号如何自动生成,解放双手?
最近研究了下产品的版本管理,发现手头一个项目大大小小的类库和主程序,加起来差不多有100多个dll,如果发布版本的时候每次去手动修改版本号,肯定会当场累死(不死也得残 -_-!),当然有极大的可能还会忘记修改版本号,总之,我想要自动生成版本号,不想把有限的精力浪费到这种无聊的事情中去,怎么办呢?好了,直接编译项目,查看生成的exe或dll文件,就会发现版本号最后修订号变成了当前年份+今年中的第几天,例如:1.0.0.25052。$major = $matches[1] # 主版本号。原创 2025-04-11 15:58:13 · 720 阅读 · 0 评论 -
上帝类的深度解析与避免策略
上帝类,顾名思义,是指那些功能过于强大、职责过于繁重的类。在软件系统中,这类类通常扮演着无所不能的角色,涵盖了从数据存储、业务逻辑处理到用户界面交互等多个方面的功能。功能过度集中:上帝类通常包含了大量的属性和方法,这些属性和方法涵盖了多个不同的功能模块。这些功能本应由不同的类来承担,但在上帝类中却被集中在一起,导致类的职责过于繁重。代码膨胀与复杂性:由于功能过度集中,上帝类的代码行数通常非常多,且逻辑复杂。这不仅使得代码难以阅读和理解,还增加了出错的风险。随着代码的不断膨胀,维护成本也会急剧上升。原创 2024-11-09 21:52:35 · 1529 阅读 · 0 评论 -
C#中Task和Thread的全解析
Task:提供了更高层次的抽象,简化了并发编程的复杂性,支持异步编程模式,自动处理异常和取消操作,通常更高效。在现代C#开发中,Task是首选的并发编程方式。Thread:提供了对线程的直接控制,但管理起来更复杂,需要处理更多的细节和同步问题。适用于需要直接控制线程的特定场景。在选择使用Task还是Thread时,应根据具体需求、性能要求、代码复杂度等因素进行权衡。在大多数情况下,Task。原创 2024-11-08 15:33:05 · 905 阅读 · 0 评论 -
C#实现傅里叶变换算法
在C#中实现傅里叶变换(Fourier Transform)算法,通常有两种主要的方法:自己编写实现代码,或者利用现有的数学和信号处理库。由于傅里叶变换算法涉及复杂的数学运算,特别是快速傅里叶变换(FFT),因此使用现有的、经过优化的库通常是更好的选择。以上仅供学习,在实际应用中,你应该使用像Math.NET Numerics这样的数学库,它提供了高效且经过优化的FFT实现。不过,为了学习的目的,我可以向你展示一个简化版的离散傅里叶变换(DFT)的实现。原创 2024-11-05 22:36:11 · 1086 阅读 · 0 评论 -
C#中lock(变量)与lock(this)的区别
推荐使用专用锁对象(如),因为它减少了锁冲突,避免了潜在的死锁问题,并且保持了良好的封装性。避免使用lock(this),因为它可能导致锁冲突、死锁风险,并破坏了封装性。选择正确的锁对象对于确保线程安全和代码可靠性至关重要。在编写多线程代码时,始终牢记这些原则,并仔细考虑锁的作用域和可见性。原创 2024-11-05 22:23:02 · 1059 阅读 · 0 评论 -
C#语言垃圾回收机制(GC)以及实现细节
新创建的对象会分配在0代上,经过一次回收后,存活下来的对象会被提升到1代,再经过多次回收后,存活下来的对象会被提升到2代。垃圾回收器(garbage collector)会定期扫描堆上的对象,标记并回收不再使用的对象,从而释放内存空间。为了减少标记和清除的时间,垃圾回收器使用了可达性分析算法,只会标记那些可达的对象,而不会标记那些不可达的对象。终结器机制:C#中的对象可以实现一个特殊的方法,称为终结器(finalizer),用于在对象被垃圾回收之前做一些清理工作。原创 2024-11-02 16:27:30 · 501 阅读 · 0 评论 -
在C#中嵌入pythonnet,使用python脚本互操作.Net对象
手头的一个老的项目,之前一直用的lua作为窗口语言,用户可以自行编写脚本来调用系统的各种资源,包括一些自定义的函数或算法,以及系统之前定义好的插件和硬件设备,因为项目面向的是一些高校和研究所,所以就陆续有人建议把python也加入进来,正好最近手头的活不是很紧急了,就稍稍研究了一下。以上这段代码摘自网络,已验证通过,没有任何问题,可以放到program文件中的Main方法中,进程启动加载一次就可以了,如果不配置PythonDLL的路径,会导致下面的初始化失败。以上为本次开发所需要的所有环境布置,原创 2024-10-10 19:00:57 · 1701 阅读 · 0 评论 -
Winform 切换选中控件后,treeview的选中状态消失
HideSelection为false就好了,事实真的如此吗?做过winform 的童鞋都知道,页面上有treeview时,控件切换光标后,选中状态就消失了,这就给人一种很迷惑的感觉,不知道之前选中的哪一个,有人说了……原创 2024-06-19 15:53:38 · 372 阅读 · 0 评论 -
netcore导入、导出Excel文件
BS系统中,利用NPIO导入导出Excel文件原创 2023-06-02 15:21:18 · 1269 阅读 · 0 评论 -
net6中使用FreeSql
说点题外话,相比net其他的版本,net6简单了许多,不再需要配置一大堆路由、插件……等等,使用体验上好了许多。net 中的orm框架之前接触过EF,因为项目的原因最近又用到了FreeSql,回过头来看看,EF还是显的笨重了不少,FreeSql除了安装Nuget包之外,只有一句connection连接字符串的配置,只要配对了就直接可以使用了,听起来是不是很爽啊,哈哈。安装:FreeSql提供了众多常用数据库的驱动插件,打开nuget选择需要的插件包安装(笔者用的数...原创 2022-02-17 18:40:48 · 2541 阅读 · 1 评论 -
svn 不显示图标状态
前一阵用上了win8,装了最新版本的Tortoise SVN,但发现文件夹和文件的svn状态图标不显示,其他操作都正常。在网上搜了一些方法。解决方法一(失败):升级最新版本。我的本来就是最新版本解决方法二(失败):右键->TortoiseSVN->Settings->Icon Overlays->Status cache,看看是不是default和none,如果是则设置为shell。我试了,设置为shell之后还是没显示 :(解决方法三(失败):找到Torto转载 2021-03-24 16:02:31 · 587 阅读 · 0 评论 -
C#调用cookie
//写入 protected void Button1_Click(object sender, EventArgs e) { HttpCookie cookie=new HttpCookie("MyCook");//初使化并设置Cookie的名称 DateTime dt=DateTime.Now; TimeSpan ts = new TimeSpan(0转载 2012-09-20 11:09:05 · 583 阅读 · 0 评论
分享