随笔分类 -  .net

摘要:说道树结构,很容易想到以下的数据结构 class Node { public string ID { get; set; } public string ParentID { get; set; } public List Children { ... 阅读全文
posted @ 2014-04-15 22:55 YLWS 阅读(1349) 评论(0) 推荐(0)
摘要:对于一个表单 有以下典型的权限读 新增 修改 删除我们可以在数据库中直接 按照 0101存储,0表示无权限,1表示有权限。做权限判断时,先创建一个对应的权限枚举 [Flags] public enum Role { Read = 1, Update = ... 阅读全文
posted @ 2014-02-21 16:46 YLWS 阅读(361) 评论(0) 推荐(0)
摘要:foreach 迭代器可以遍历所有实现了IEnumerable接口或者提供了IEnumerable实现的类。MSDN解释:在 C# 中,集合类并非必须严格从 IEnumerable 和 IEnumerator 继承才能与 foreach 兼容;只要类有所需的 GetEnumerator、MoveNext、Reset 和 Current 成员,便可以与 foreach 一起使用。省略接口的好处为,使您可以将 Current 的返回类型定义得比 object 更明确,从而提供了类型安全。查看IEnumerable的实现,只是简单的返回了一个IEnumerator 对象,所有的处理都被委托到了IEn 阅读全文
posted @ 2013-07-23 10:20 YLWS 阅读(507) 评论(0) 推荐(0)
摘要:委托提供了安全的方法回调机制。常见用法:1.winform asp.net 中的按钮事件。2.winform中 窗体A弹出窗体B, 点击窗体B的按钮,修改窗体A的属性。3.封装流程,通过委托注入,实现了更加轻量级的模板方法模式的实现。首先我们定义一个委托public delegate void MyDelegate(string name);事实上,编译器会将该委托编译为一个类 public sealed class MyDelegate : MulticastDelegate { public MyDelegate(object @object, IntPtr me... 阅读全文
posted @ 2013-07-19 10:58 YLWS 阅读(304) 评论(0) 推荐(0)
摘要:有一个很常见的需求,服务端有一个 校验登陆的 方法,最开始只有一个布尔值,表示成功失败。public bool UserValid(string name, string pwd){ //校验登陆 }后来需求变更,需要返回 具体的User对象以及 登陆失败的原因。方案一:返回标识 比如 0,1,2 或者是枚举 表示登陆状态,在界面上再转化为具体的 登陆成功,密码错误等。方案二:在方法中添加 out message,返回错误信息。方案三:服务端抛出对应异常,客户端捕获。方案四:封装返回结果为一个类。个人偏向方案四,但是如果每个返回结果都需要封装一个类,那不累死了?所以 使用泛型封装出一... 阅读全文
posted @ 2013-07-18 16:51 YLWS 阅读(713) 评论(0) 推荐(0)
摘要:1.基本概念.NET2.0新增的最大的特性是泛型。我们先来看下定义在System.Collections.Generic下的List:public class List : IList, ICollection, IEnumerable, IList, ICollection, IEnumerableList类后边的紧跟着一个,T被称为类型参数(type parameter),是一个真实实参的占位符,表明该类未定义实际的数据类型。 实际使用的时候,需要指定T的具体类型,如:List,此处的string被称为类型实参(type argument),List下所有的T都会被替换成string类型。 阅读全文
posted @ 2012-07-15 14:22 YLWS 阅读(1013) 评论(0) 推荐(0)