c#
zaiguo
学习乔帮主精神做一名合格的民工。
展开
-
总是提供ToString()方法
1原因类型的字符串表示非常有用,可以在很多地方向用户显示对象的有关信息,例如在windows forms上、web forms上、控制台输出窗口中,以及调试环境中。为此,我们创建的每一个类型都因该重写Object类的ToString()方法。2举例public class Customer{private string _name;private decimal _reven原创 2011-11-15 05:09:48 · 394 阅读 · 0 评论 -
Mvvm Light Toolkit for wpf/silverlight系列之Command和Events
事件是WPF/SL应用程序中UI与后台代码进行交互的最主要方式,与传统方式不同,mvvm中主要通过绑定到命令来进行事件的处理,因此要了解mvvm中处理事件的方式,就必须先熟悉命令的工作原理。 一、RelayCommand命令WPF/SL命令是通过实现 ICommand 接口创建的。 ICommand 公开两个方法(Execute 及 CanExecute)和一转载 2014-04-02 19:37:41 · 817 阅读 · 0 评论 -
SuppressMessage
通常最好指出警告不适用于代码,这样小组成员可以知道代码已经过检查并已决定取消警告。源代码中禁止显示 (ISS) 功能允许开发人员将取消警告的代码放在靠近警告本身的位置。“源代码中禁止显示”概述检查代码之后,您可能确定代码是正确的。也可能是以下情况,即某些冲突的优先级较低,因此不会在当前的开发周期中修复。无论出于何种原因,以下操作通常是有用的,即指出相应警告不适用,以使小组成转载 2014-03-27 12:37:46 · 8401 阅读 · 0 评论 -
使用泛型
1 ,泛型不仅仅在集合这个上下文中有用武之地,还能够用于很多其他场合,例如创建接口、事件处理程序以及常用算法等。 2 ,c#编译器根据c#代码生成微软中间语言表示的泛型类型定义。而JIT编译器则会把泛型类型定义与一系列的类型参数组合起来,从而创建出封闭的泛型类型。CLR将在运行时同时支持上述两种概念。 3 ,使用多个引用类型参数的泛型类型并不会影响程序的内存占用,因为其被JIT编译后只生成一份代码原创 2012-03-28 07:53:29 · 443 阅读 · 0 评论 -
不要为基类或接口创建泛型的特殊实现
引入泛型方法将让编译器对重载的解析变得非常复杂。每个泛型方法的类型参数都可以任意替换。如果稍有疏忽,程序的行为将变得极其古怪。在创意泛型类型或方法时,必须保证让使用者能够尽可能地理解你的设计意图,安全的使用代码。因此需要非常小心对重载的解析,还要了解哪个方法将会更好地匹配开发者的原本意图。 1,对于一个派生于MyBase的对象来说,WriteMessage《T》(T obj)要比WriteMess原创 2012-03-28 07:53:12 · 1014 阅读 · 0 评论 -
尽可能地减小锁对象的作用范围
在编写并发程序时,我们需要选择最合适的同步原语。应用程序中对同步原语时用得越多,也就越难以避免发生死锁等并发上得错误。这是个规模的问题:需要检查得地方越多,也就越难发现某个特定得错误。 在面向对象编程中,我们使用私有成员变量来尽可能减少发生状态变化的位置的数量。在并发程序中,同样也应该尽可能地减小用来实现同步对象的作用范围。 我们需要改变锁定的策略,你可以采用下面将要介绍的三种方法。 第一种方法是原创 2012-03-28 07:52:26 · 687 阅读 · 0 评论 -
确保0为值类型的有效状态
系统会将值类型的所有实例初始化为0.我们没有办法阻止用户创建“字段全部为0”的值类型实例。如果可能的话,我们应该将“字段全部为0”作为类型的默认值。作为一种特殊情况,被用做位标记的枚举类型,应该确保0的意义为“不包括所有其他标记的情况”。原创 2011-11-25 03:59:07 · 381 阅读 · 0 评论 -
C# xpath解析XML文件
先来看看解析xml文件的方法都有哪些吧,可以帮助大家对这个问题有个概要的了解。在程序中访问并操作XML文件一般有两种模型:流模型和DOM(文档对象模型)。流模型中有两种变体——“推”模型和“拉”模型。 “推”模型也就是常说的SAX,SAX是一种靠事件驱动的模型。它每发现一个节点就用“推”模型引发一个事件,而我们必须编写这些事件的处理程序,很麻烦。.NET中使用的是基于“拉”模型的实现转载 2011-11-01 05:13:23 · 2533 阅读 · 0 评论 -
明辨值类型和引用类型的使用场合
1、值类型与引用类型的选择依赖于我们期望将来的客户程序如何使用我们的类型。值类型不支持多态,比较适合存储供应用程序操作的数据。应用类型支持多态,应该用于定义应用程序的行为。在设计类型时,我们应该考虑类型的责任,根据期望的责任,我们才能判断创建何种类型。简而言之,结构用于存储数据,类用于定义行为。2、将类型设计为值类型还是引用类型是一个非常重要的决定。如果刚开始没有确定好,之后再将值类型改变为引原创 2011-11-19 11:28:48 · 355 阅读 · 0 评论 -
使用Conditional特性代替#if条件编译
1原因#if/#else条件编译常用来由同一份源代码生成不同的结果文件,最常见的有 debug版和release版。但是这些工具在具体的应用中并不是非常得心应手,因为它们它容易被滥用了,使用它们创建的代码通常都比较难理解,且难以调试。2解决方法C#为此提出了一种更好的选择:Conditional特性。使用Conditional特性可以将函数隔离出来,使得它们只有在定义了某些环境变量后才原创 2011-11-14 05:06:31 · 897 阅读 · 0 评论 -
介绍C#解析HTML的两种方法
在搜索引擎的开发中,我们需要对网页的Html内容进行检索,难免的就需要对Html进行解析。拆分每一个节点并且获取节点间的内容。此文介绍两种C#解析Html的方法。第一种方法:用System.Net.WebClient下载Web Page存到本地文件或者String中,用正则表达式来分析。这个方法可以用在Web Crawler等需要分析很多Web Page的应用中。估计这也是大家最直接,转载 2011-11-15 05:25:37 · 575 阅读 · 0 评论 -
WP8的async和await
内容预告:awaitable的对象如何工作并行处理的新方法用async替代BackgroundWorkder了解为什么不再使用线程和线程池异步函数与基于任务的编程模型(TPM==Task Programming Model):WP7.1用.NET4.0的模式支持异步编程:BeginXYZ,EndXYZ函数,如HttpWebRequest.BeginGetResponse转载 2014-04-07 11:00:03 · 601 阅读 · 0 评论