知识大全 C#编程的四个技巧(新手必看)

Posted 属性

篇首语:当你的才华还撑不起你的野心时,你就该努力。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#编程的四个技巧(新手必看)相关的知识,希望对你有一定的参考价值。

C#编程的四个技巧(新手必看)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   .如果可能尽量使用接口来编程

   NET框架包括类和接口 在编写程序的时候 你可能知道正在用 NET的哪个类 然而 在这种情况下如果你用 NET支持的接口而不是它的类来编程时 代码会变得更加稳定 可用性会更高 请分析下面的代码     private void LoadList (object [] items ListBox l)         for (int i = ; i < items Length;i++)      l Items Add (items[i] ToString ());    这个函数从一个可为任何对象的数组中加载ListBox 这段代码被限定为只能使用数组 假想过些时候你发现那些对象存在数据库中 或别的集合中 那么你 需要修改程序来使用不同的集合类型 如果你用ICollection接口来写那段程序 你就不用修改那段程序了 对于任何实现ICollection接口 的类型它都能很好的工作:

  private void LoadList (ICollection items ListBox l)          foreach (object o in items)      l Items Add (o ToString ());   

  ICollection被数组和所有System Collection中的集合实现 此外 多维数组也支持ICollection接口 如果那还不够的话 数据库 NET类同样支持ICollection接口 用接口写的这个函数不用需改就可以才许多中情况下使用

   使用属性代替原始数据

  因为属性已经成为语言本身的元素 所以声明数据元素时它的作用域等级没有必要大于private 因为代码本身会把属性看成数据元素 你并没有失去使用 简单数据类型的便利性 相反它会使你的代码更加灵活功能更加强大 属性使你的数据元素封装性更好 属性可以让你使用lazy evaluation来返回数据 lazy evaluation的意思是当用户请求时才计算它的值 而不是一直保留着它

  最后 属性可以是virtual也可以是abstract 你也可以在接口中定义属性

  这里还有维护方面的因素应当注意 尽管操作两者的方法是一样的 但是你把一个数据元素变成属性 那么原先客户端的程序便不能访问服务端的新版本程序了 实际上对于在Web service中你想实现序列化的值你可以把它们变成属性来使用      private int TheMonth = ;

  [XmlAttribute ( Month )]    public int Month         get       return TheMonth;          set       TheMonth = value;     

    简单通过属性就可以使你的所有数据元素私有化

   在Producer/Consumer 的Idiom中使用Delegate

  当你生成一个实现producer idiom类的时候 使用deletate来通知consumer 这种方法相对于用接口更加灵活 Delegate是多点传送的 所以不用加额外的代码你就何以支持多用户 相对于用接口这样做可使类之间的耦合性降低

  下面的类处理键盘输入并把它传给所有的registered listeners    public class KeyboardProcessor        private OnGetLine theFunc = null;

  public OnGetLine OnGetLineCallback      get       return theFunc;          set       theFunc = value;        

  public void Run ()    // Read input     // If there is any listeners publish:    string s;    do      s = Console ReadLine ();     if (s Length == )      break;     if (theFunc != null)      System Delegate [] funcs =theFunc GetInvocationList();      foreach (OnGetLine f in funcs)        try         f (s);        catch (Exception e)         Console WriteLine        ( Caught Exception: e Message);                      while (true);   

  任何数目的listeners都可注册到producer 它们所要做的只是提供一个特定的函数 deletate

   注意初始化顺序

  C#中对于一些变量声明加入了initializer的概念 它们在构造函数之前被执行 实际上变量在基类的构造函数执行前之前被初始化

cha138/Article/program/net/201311/13589

相关参考

新手必看之龙鱼的饲养方法

温度是热带鱼生存的最重要的条件,没有适合热带鱼生长的温度,热带鱼就无法生存,热带鱼是狭温性动物,它们对温度是极为敏感,笔者曾做过试验:将孔雀鱼放在无水草无光照的鱼缸里,不喂食,它们可以活四个月以上,但

知识大全 新手必看关于WCF协定概念总结

新手必看关于WCF协定概念总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  经过长时间学习WC

新手必看的孔雀鱼的养殖技术

一,饲养技术这里只的饲养技术并不是只的丰富的饲养经验和丰富的饲养知识,而是要确定以下饲养方法。  1.择设备小型鱼缸(10公升~20公升)底沙5公斤左右.pH值6.8~7.5.每分钟至少2公升的过水量

新手必看的孔雀鱼的养殖技术

一,饲养技术这里只的饲养技术并不是只的丰富的饲养经验和丰富的饲养知识,而是要确定以下饲养方法。  1.择设备小型鱼缸(10公升~20公升)底沙5公斤左右.pH值6.8~7.5.每分钟至少2公升的过水量

知识大全 新手入门之 Visual C#命名空间详解

新手入门之VisualC#命名空间详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  命名空间提

知识大全 简述企业文化建设内涵的四个要点。

简述企业文化建设内涵的四个要点。,企业文化建设内涵的四个要点是什么?一、、四个要点1、企业文化是普遍存在的,有企业的地地方就有企业文化,社会文化与企业文化是一种互相交融,互相制约,共同发展的对立统一关

荨麻疹日常护理的四个方面

荨麻疹日常护理的四个方面,荨麻疹是种严重影响皮肤健康的疾病,荨麻疹发作的时候,患者的皮肤表面会出现大块大块的红肿,而且很痒,患者用手挠的话皮肤会变得更糟糕,下面我们来了解一下荨麻疹日常护理的四个方面。

荨麻疹日常护理的四个方面

荨麻疹日常护理的四个方面,荨麻疹是种严重影响皮肤健康的疾病,荨麻疹发作的时候,患者的皮肤表面会出现大块大块的红肿,而且很痒,患者用手挠的话皮肤会变得更糟糕,下面我们来了解一下荨麻疹日常护理的四个方面。

酒田战法的四个阶段

酒田战法的四个阶段1、筑底阶段“酒田战法”把底部比喻为深谷,谷底多有河流所以把“三重底”、“头肩底”称为“三川”,“双重底”、“W底”成为“两川”,“弧型底”、“半圆底”成为“锅底”,底部横向构筑面积

波浪理论的四个基本特点

波浪理论的四个基本特点(1)股价指数的上升和下跌将会交替进行;(2)推动浪和调整浪是价格波动两个最基本型态,而推动浪(即与大市走向一致的波浪)可以再分割成五个小浪,一般用第1浪、第2浪、第3浪、第4浪