码迷,mamicode.com
首页 >  
搜索关键字:编写高质量代码    ( 328个结果
【转】编写高质量代码改善C#程序的157个建议——建议39:了解委托的实质
建议39:了解委托的实质 理解C#中的委托需要把握两个要点: 1)委托是方法指针。 2)委托是一个类,当对其进行实例化的时候,要将引用方法作为它的构造方法的参数。 设想这样一个场景:在点对点文件传输过程当中,我们要设计一个文件传输类,该传输类起码要满足下面几项功能: 传输问题件; 按照百分制通知传输 ...
分类:Windows程序   时间:2017-12-01 19:38:32    阅读次数:292
【转】编写高质量代码改善C#程序的157个建议——建议41:实现标准的事件模型
建议41:实现标准的事件模型 上一建议中,我们实现了一个带事件通知的文件传输类FileUploader。虽然已经满足需求,但却不符合C#的编码规范,查看EventHandler的原型声明: 我们应该知道微软为事件模型定义的几个规范: 委托类型的名称已EventHandler结束; 委托原型返回值为v ...
分类:Windows程序   时间:2017-12-01 19:33:27    阅读次数:171
【转】编写高质量代码改善C#程序的157个建议——建议38:小心闭包中的陷阱
建议38:小心闭包中的陷阱 先看一下下面的代码,设想一下输出的是什么? 我们的设计意图是让匿名方法(在这里表现为Lambda表达式)接受参数 i ,并输出: 0 1 2 3 4 而实际上输出为: 5 5 5 5 5 这段代码并不像我们想象的那么简单,要完全理解运行时代码是怎么运行的,首先必须理解C# ...
分类:Windows程序   时间:2017-12-01 18:40:09    阅读次数:232
【转】编写高质量代码改善C#程序的157个建议——建议35:使用default为泛型类型变量指定初始值
建议35:使用default为泛型类型变量指定初始值 有些算法,比如泛型集合List<T>的Find算法,所查找的对象可能会是值类型,也有可能是引用类型。在这种算法内部,我们常常会为这些值类型或引用类型变量指定默认值。于是,问题来了:值类型变量的默认初始值是0值,而引用类型变量的默认初始值是null ...
分类:Windows程序   时间:2017-12-01 18:37:44    阅读次数:200
【转】编写高质量代码改善C#程序的157个建议——建议36:使用FCL中的委托声明
建议36:使用FCL中的委托声明 FCL中存在3类这样的委托声明,它们分别是:Action、Func、Predicate。尤其是在它们的泛型版本出来以后,已经能够满足我们在实际编码过程中的大部分需求。 Action表示接受0个或多个输入参数,执行一段代码,没有任何返回值; Func表示接受0个或多个 ...
分类:Windows程序   时间:2017-12-01 18:32:30    阅读次数:134
【转】编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法
建议37:使用Lambda表达式代替方法和匿名方法 在建议36中,我们创建了这样一个实例程序: 实际上要完成相同的功能,还有很多种编码方式。先看一种最中规中矩的,也是最繁琐的写法: 注意:上面的语法虽然繁琐,但是我们可以从中加深对委托本质的认识:委托也是一种数据类型,跟任何FCL 中的引用类型没有差 ...
分类:Windows程序   时间:2017-12-01 18:31:46    阅读次数:199
【转】编写高质量代码改善C#程序的157个建议——建议31:在LINQ查询中避免不必要的迭代
建议31:在LINQ查询中避免不必要的迭代 无论是SQL查询还是LINQ查询,搜索到结果立刻返回总比搜索完所有的结果再将结果返回的效率要高。 示例代码: 针对上述集合,返回年龄等于20的第一个元素。下面有两个查询模式,我们来考虑哪一个效率更高。 通常我们会认为第一种的效率会更高一些,因为它似乎返回的 ...
分类:Windows程序   时间:2017-12-01 16:37:29    阅读次数:275
【转】编写高质量代码改善C#程序的157个建议——建议27:在查询中使用Lambda表达式
建议27:在查询中使用Lambda表达式 LINQ实际上是基于扩展方法和Lambda表达式的。任何LINQ查询都能通过扩展方法的方式来代替。 等价于: 针对LINQ设计的扩展方法大多应用了泛型委托。System命名空间定义了泛型委托Action、Func和Predicate。Action用于执行一个 ...
分类:Windows程序   时间:2017-11-30 18:11:15    阅读次数:191
【转】编写高质量代码改善C#程序的157个建议——建议30:使用LINQ取代集合中的比较器和迭代器
建议30:使用LINQ取代集合中的比较器和迭代器 LINQ提供了类似于SQL的语法来实现遍历、筛选与投影集合的功能。 foreach实际隐含调用的是集合对象orderByBaseSalary和orderByBouns的迭代器。以往,如果我们要绕开集合的Sort方法对集合按照一定的顺序进行迭代,则需要 ...
分类:Windows程序   时间:2017-11-30 18:09:53    阅读次数:237
【转】编写高质量代码改善C#程序的157个建议——建议28:理解延迟求值和主动求值之间的区别
建议28:理解延迟求值和主动求值之间的区别 要理解延迟求值(lazy evaluation)和主动求值(eager evaluation),先看个例子: 输出: temp1: 11 6 7 8 9temp2: 6 7 8 9 在延迟求职的情况下,只是定义了一个查询,而不是立刻执行。对查询结果的访问每 ...
分类:Windows程序   时间:2017-11-30 18:08:09    阅读次数:225
328条   上一页 1 ... 7 8 9 10 11 ... 33 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!