随笔分类 -  开发 - .NET/C#

摘要:深入线程安全容器的实现方法 阅读全文
posted @ 2013-06-08 14:54 脸谱匠 阅读(328) 评论(0) 推荐(0) 编辑
摘要:不同的情况下需要返回不同类型的数据集合,特点是,这些类型都继承自同一个接口。用泛型的方式返回结合在这里行不通。只有返回接口,集合只能采用数组,不能用List,用Interface[]的返回模式方可实现。 阅读全文
posted @ 2013-06-06 10:22 脸谱匠 阅读(3440) 评论(4) 推荐(1) 编辑
摘要:获取程序运行的目录。例如D:\Program Files\QQ.exe,则可以获取D:\Program Filesstring method1 = AppDomain.CurrentDomain.BaseDirectory;//D:\Test\bin\Debug\System.IO.FileInfo info = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);string method2 = info.Directory.FullName;//D:\Test\bin\Debu 阅读全文
posted @ 2013-05-29 09:55 脸谱匠 阅读(409) 评论(0) 推荐(0) 编辑
摘要:C#做外挂常用API 阅读全文
posted @ 2013-05-11 09:12 脸谱匠 阅读(744) 评论(0) 推荐(1) 编辑
摘要:treeView.BeforeSelect事件,可以取消选择。 TreeViewCancelEventArgs e,e包含有属性Action、Node、Cancel。可以根据Action来判断BeforeSelect事件是由什么操作触发的。同样,Node获取当前的节点,通过Node的属性值也可以判断是否继续往下执行。属性Cancel为true时,不会继续往下执行。(注:至少不会出发AfterSelect事件) e.Action,是一个枚举。有五个值:Collapse、Expand、Unknown、ByKeyboard、ByMouse。稍微理解一下,可以知道Collapse是折叠节点时的状态,Expand对应展开节点操作,ByKeyboard对应键盘选择操作,ByMouse对应鼠标选择操作,至于Unknown,不全是但包含treeView.SelectedNode = tn;对TreeView的SelectedNode属性赋值时的状态。 阅读全文
posted @ 2013-05-09 17:30 脸谱匠 阅读(3275) 评论(0) 推荐(2) 编辑
摘要:泛型的使用;泛型的约束where,包括new(),class,Iinterface等;反射获取类型的带参数的构造函数并创建实例。 阅读全文
posted @ 2013-05-03 15:17 脸谱匠 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:包含关系的管理,可以有很多思路。List集合、枚举的HasFlag、二进制与运算、BitVector32、BitArray等等。list集合属于最基本的方法,存在数据的存储和处理时内存的开销较大的缺点;枚举、二进制与运算、BitVector32,它们的优点是内存开销较小,但都存在着Int位数限制的问题。BitArray较第二种在系统开销上要大些,但在长度上面比较占优势,可以无限长度扩充。 阅读全文
posted @ 2013-03-29 14:16 脸谱匠 阅读(2406) 评论(0) 推荐(1) 编辑
摘要:当Winform以Show的方式,及无模式的方式弹出时,Close会调用Dispose,也就是说用户在这种情况下关闭对话框,Dispose会马上被调用,资源会马上被释放。 但是对ShowDialog,及模式对话框的情况就不是这样了,你必须显示调用dispose。 阅读全文
posted @ 2013-03-26 16:46 脸谱匠 阅读(13143) 评论(0) 推荐(2) 编辑
摘要:本文介绍ComboBox自动匹配的两种方法。第一种是ComboBox自带的属性AutoCompleteMode,第二种编辑ComboBox的TextUpdate事件来实现。第一种方法有一个弊端,只能从左到右匹配;第二种方法可以实现自动模糊匹配的效果。 阅读全文
posted @ 2013-03-13 11:40 脸谱匠 阅读(16168) 评论(4) 推荐(3) 编辑
摘要:有时候DGV的DataSource绑定到集合,修改集合之后DGV没有刷新,但是有时候又会刷新 阅读全文
posted @ 2013-03-08 17:31 脸谱匠 阅读(21038) 评论(0) 推荐(1) 编辑
摘要:本篇用两种方法来实现数值的包含关系管理。枚举的HasFlag和二进制的或运算。通过方法,我们可以将多个设置的是否值揉合成一个字段。形如'10111101'。再通过HasFlag来判断某个设置的结果是否为true。实现用最少的代码来管理这些设置信息。 阅读全文
posted @ 2013-02-20 10:56 脸谱匠 阅读(6232) 评论(3) 推荐(2) 编辑
摘要:动态加载Dll,运行时更新Dll 阅读全文
posted @ 2013-01-21 15:14 脸谱匠 阅读(4883) 评论(1) 推荐(3) 编辑
摘要:通过使用泛型,可以创建这样的类、接口和方法,它们以一种类型安全的工作方式操作各种数据。 本质上,术语“泛型”指的是“参数化类型”(parameterized types)。参数化类型非常重要,因为它们可以在创建类、接口、方法和委托的时候将要操作的数据类型作为参数进行指定。 阅读全文
posted @ 2013-01-05 10:43 脸谱匠 阅读(354) 评论(0) 推荐(0) 编辑
摘要:.net开发中配置文件的常用保存格式:ini/xml/config/txt 阅读全文
posted @ 2013-01-02 09:11 脸谱匠 编辑
摘要:void TestMethod(List a1, List a2) where T1 : IA1 where T2 : IA2 void TestMethod(List a1, List a2) 阅读全文
posted @ 2012-12-30 09:54 脸谱匠 阅读(1159) 评论(1) 推荐(0) 编辑
摘要:在项目开发中,遇到一类需求,效果有点像家里的电灯开关,有多个开关同时控制一个灯,无论拨那个都同样的效果。实际的需求是:两个CheckBox,A在上面,为主开关,B在panelC里面,为子开关。A选中后C显示+B选中、A未选中则C隐藏+B未选、B可见时必定为选中时,如果此时将B改为未选则A未选+C隐藏.最后的实现思路是用控件的DataBinding来做。 阅读全文
posted @ 2012-12-29 09:19 脸谱匠 阅读(523) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2012-12-21 16:10 脸谱匠 编辑
摘要:KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符 阅读全文
posted @ 2012-12-03 16:04 脸谱匠 阅读(860) 评论(0) 推荐(0) 编辑
摘要:C#中的非托管资源释放(Finalize&Dispose)。在了解Finalize和Dispose之前,我们需要了解两个概念,一个是托管资源,一个非委托资源。 阅读全文
posted @ 2012-11-29 13:44 脸谱匠 阅读(577) 评论(0) 推荐(1) 编辑
摘要:看到许多朋友写过,在C#中调用DLR脚本的方法,但没有一个说的完整。如今我要说一个详细完整的,希望能对您有所帮助。本文,主要通过C#与IronPython脚本,来体现.NET与脚本互操作的过程。 阅读全文
posted @ 2012-11-27 10:50 脸谱匠 阅读(2481) 评论(1) 推荐(0) 编辑