07 2013 档案

摘要: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 阅读(506) 评论(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 阅读(302) 评论(0) 推荐(0)
摘要:有一个很常见的需求,服务端有一个 校验登陆的 方法,最开始只有一个布尔值,表示成功失败。public bool UserValid(string name, string pwd){ //校验登陆 }后来需求变更,需要返回 具体的User对象以及 登陆失败的原因。方案一:返回标识 比如 0,1,2 或者是枚举 表示登陆状态,在界面上再转化为具体的 登陆成功,密码错误等。方案二:在方法中添加 out message,返回错误信息。方案三:服务端抛出对应异常,客户端捕获。方案四:封装返回结果为一个类。个人偏向方案四,但是如果每个返回结果都需要封装一个类,那不累死了?所以 使用泛型封装出一... 阅读全文
posted @ 2013-07-18 16:51 YLWS 阅读(712) 评论(0) 推荐(0)