码迷,mamicode.com
首页 >  
搜索关键字:c++ 高质量    ( 2183个结果
编写高质量代码改善C#程序的157个建议——建议47:即使提供了显式释放方法,也应该在终结器中提供隐式清理
建议47:即使提供了显式释放方法,也应该在终结器中提供隐式清理在标准的Dispose模式中,我们注意到一个以~开头的方法,如下: /// /// 必须,防止程序员忘记了显式调用Dispose方法 /// ~SampleClass() ...
分类:Windows程序   时间:2015-08-16 13:39:35    阅读次数:149
编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable
建议46:显式释放资源需继承接口IDisposableC#中的每一个类型都代表一种资源,资源分为两类:托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象。非托管资源:不受CLR管理的对象,如Windows内核对象,或者文件、数据库连接、套接字、COOM对象等。如果我们的类型使用了非...
分类:Windows程序   时间:2015-08-16 13:39:04    阅读次数:163
编写高质量代码改善C#程序的157个建议——建议45:为泛型类型参数指定逆变
建议45:为泛型类型参数指定逆变逆变是指方法的参数可以是委托或者泛型接口的参数类型的基类。FCL4.0中支持逆变的常用委托有:FuncPredicate常用委托有:IComparer下面例子演示了泛型类型参数指定逆变所带来的好处: class Program { stati...
分类:Windows程序   时间:2015-08-15 22:52:58    阅读次数:207
编写高质量代码改善C#程序的157个建议——建议44:理解委托中的协变
建议44:理解委托中的协变委托中的泛型变量天然是部分支持协变的。为什么是“部分支持协变”?看下面示例: class Program { public delegate T GetEmployeeHanlder(string name); static void ...
分类:Windows程序   时间:2015-08-15 22:51:05    阅读次数:184
编写高质量代码改善C#程序的157个建议——建议43:让接口中的泛型参数支持协变
建议43:让接口中的泛型参数支持协变除了上一建议中提到的使用泛型参数兼容接口不可变性外,还有一种办法是为接口中的泛型声明加上out关键字来支持协变,如下所示: interface ISalary //使用out关键字 { void Pay(); } ...
分类:Windows程序   时间:2015-08-15 22:50:12    阅读次数:182
编写高质量代码改善C#程序的157个建议——建议42:使用泛型参数兼容泛型接口的不可变性
建议42:使用泛型参数兼容泛型接口的不可变性让返回值类型返回比声明的类型派生程度更大的类型,就是“协变”。如: public Employee GetAEmployee(string name) { Console.WriteLine("我是雇员:"...
分类:Windows程序   时间:2015-08-15 22:42:39    阅读次数:190
编写高质量代码改善C#程序的157个建议——建议41:实现标准的事件模型
建议41:实现标准的事件模型上一建议中,我们实现了一个带事件通知的文件传输类FileUploader。虽然已经满足需求,但却不符合C#的编码规范,查看EventHandler的原型声明:public delegate void EventHandler(object sender, EventArg...
分类:Windows程序   时间:2015-08-15 21:21:40    阅读次数:158
编写高质量代码改善C#程序的157个建议——建议40:使用event关键字为委托施加保护
建议40:使用event关键字为委托施加保护在建议中我们实现了一个具有通知功能的文件传输类,如下: class FileUploader { public delegate void FileUploadedHandler(int progress); pub...
分类:Windows程序   时间:2015-08-15 21:18:18    阅读次数:131
编写高质量代码改善C#程序的157个建议——建议38:小心闭包中的陷阱
建议38:小心闭包中的陷阱先看一下下面的代码,设想一下输出的是什么? static void Main(string[] args) { List lists = new List(); for (int i = 0; i ...
分类:Windows程序   时间:2015-08-15 19:48:47    阅读次数:201
编写高质量代码改善C#程序的157个建议——建议39:了解委托的实质
建议39:了解委托的实质理解C#中的委托需要把握两个要点:1)委托是方法指针。2)委托是一个类,当对其进行实例化的时候,要将引用方法作为它的构造方法的参数。设想这样一个场景:在点对点文件传输过程当中,我们要设计一个文件传输类,该传输类起码要满足下面几项功能:传输问题件;按照百分制通知传输进度;传输类...
分类:Windows程序   时间:2015-08-15 19:48:04    阅读次数:231
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!