zoukankan      html  css  js  c++  java
  • C#编码规范(四)

    31.  总是使用基于0开始的数组。

    32.  在循环中总是显式的初始化引用类型的数组。

    public class MyClass

    {}

    MyClass[] array = new  MyClass[100];

    for(int index = 0; index < array.Length;  index++)

    {

       array[index] = new  MyClass();

    }

    33.  不要提供public 和 protected的成员变量,使用属性代替他们。

    34.  避免在继承中使用new而使用override替换。

    35.  在不是sealed的类中总是将public 和 protected的方法标记成virtual的。

    36.  除非使用interop(COM+ 或其他的dll)代码否则不要使用不安全的代码(unsafe code)。

    37.  避免显示的转换,使用as操作符进行兼容类型的转换。

    Dog dog = new GermanShepherd();

    GermanShepherd shepherd = dog  as  GermanShepherd;

    if (shepherd != null )

    {…}

    38.  当类成员包括委托的时候

    a)  Copy a delegate to a local variable before publishing to avoid concurrency race

    condition. 

    b)  在调用委托之前一定要检查它是否为null

    public class MySource

    {

       public event EventHandler  MyEvent;

       public void FireEvent()

       {

          EventHandler temp = MyEvent;

          if(temp != null )

          {

             temp(this,EventArgs.Empty);

          }

       }

    }  

    39.  不要提供公共的事件成员变量,使用事件访问器替换这些变量。

    public class MySource

    {

       MyDelegate m_SomeEvent ;

       public event MyDelegate SomeEvent

       {

          add

          {

             m_SomeEvent += value;

          }

          remove

          {

             m_SomeEvent -= value;

          }

       }

    }

    40.  使用一个事件帮助类来公布事件的定义。

  • 相关阅读:
    MySQL性能调优语句
    APP测试
    JForum项目搭建
    Bug的等级及定位
    mysql any和all的用法
    mysql产生随机数
    MySQL存储过程例子
    【转】 卡特兰数
    牛客小白月赛5 I 区间 (interval) 【前缀和】
    牛客小白月赛5 D 阶乘(factorial) 【前缀】
  • 原文地址:https://www.cnblogs.com/atun/p/2053395.html
Copyright © 2011-2022 走看看