
C#
拙笨前行
这个作者很懒,什么都没留下…
展开
-
Metadata file 'xxx.dll' could not be found错误的解决方案
在网上搜索了很多该问题的解决方案,可均未能实现,原来原因在于多个project项目在编译时候首先要保证本身无错,如果本身有错,可先注释,然后确保无错后编译,该错误自动会消失。可参考:https://stackoverflow.com/questions/44251030/vs-2017-metadata-file-dll-could-not-be-found...原创 2018-06-07 12:34:29 · 6037 阅读 · 0 评论 -
中间语言(MSIL)和JIT编译器
C#编写的程序,经过编译器把编译后,源代码被转换成Microsoft中间语言(MSIL)。MSIL不是真正可执行的代码。因此,要真正执行MSIL应用程序,还必须使用“JIT编译器”,对MSIL再次编译,以得到主机处理器可以真正执行本机指令。JIT编译器以即时方式编译MSMIL代码,以便应用程序执行。...原创 2018-04-28 09:26:39 · 560 阅读 · 0 评论 -
值类型和引用类型深入理解
引言 山重水复疑无路,柳暗花明又一村,越探究越接近事物的本质。最近在学习原型模式(Prototype)时,发现原型模式本质就是对一个类原始数据的克隆,但在学习深拷贝和浅拷贝时又发现与值类型和引用类型有着千丝万缕的联系。回想好久都没有温习基础,于是就整理了值类型和引用类型的随笔,本文内容比较基础,对于想继续深入研究的同学可以查看IL更深入探究。1.值类型(ValueType)值类型包括:数值类型...转载 2018-04-27 16:21:09 · 167 阅读 · 0 评论 -
WPF 防止多次点击button引起多次启动
可采用如下方法实现:bool processing;void btn_1(object sender, RoutedEventArgs e){ if(processing == true) return; try { processing = true; //执行需要2秒以上 } finally { processing = false; ...原创 2018-04-27 14:11:34 · 4296 阅读 · 0 评论 -
C# Find()和First()与FirstOrDefault
1. Find方法只能在List<T>上使用,而后者能更广泛应用在IEnemerable<T>上。Find最终是建立在Array的查找之上,而在IEnemerable上的FirstOrDefault是使用foreach查找的。因此,Find速度会比FirstOrDefault快很多,据测试可能会快一倍以上。2. First:取序列中满足条件的第一个元素,如果没有元素满足条件...转载 2018-05-03 13:18:43 · 7151 阅读 · 0 评论 -
action and func
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发现确实代码简洁了不少。这两种方式我们也可以去实践的过程去慢慢运用。先说一下委托:模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去买本(一个程序员的自我修养)。可是呢以前总是跑书厂...转载 2018-04-11 10:26:16 · 283 阅读 · 0 评论 -
Process.Kill() 拒绝访问(Access Denied) 的解决方案
Kill()方法的注释: // // 摘要: // 立即停止关联的进程。 // // 异常: // System.ComponentModel.Win32Exception: // 未能终止关联的进程。 - 或 - 正在终止该进程。 - 或 - 关联的进程是一个 Win16 可执...转载 2018-04-10 15:22:08 · 6995 阅读 · 0 评论 -
xmlns命名空间的网址含义
namespace即"命名空间",VS.NET中的各种语言使用的一种代码组织的形式通过名称空间来分类,区别不同的代码功能,同时也是VS.NET中所有类的完全名称的一部分。可以看到xmlns有的是网址,有的是clr-namespace开头的一串字母。clr开头的比较好理解,就是运行时的命名空间,就像C#代码中的using xxxx之类的一样。但是对于网址开头的命名空间有可能就有点疑惑了,它究竟代表的...转载 2018-02-11 09:43:20 · 1979 阅读 · 0 评论 -
foreach中不能修改元素的值
foreach循环中不能修改集合元素的值,否则会报错:Collection was modified; enumeration operation may not execute.当用foreach遍历Collection时,如果对Collection有Add或者Remove操作或者给item某个属性赋值都会有这个错误。原因是因为Collection返回的IEnumerator把当前的属性暴露为只...转载 2018-06-25 16:26:00 · 7129 阅读 · 1 评论