zoukankan      html  css  js  c++  java
  • C#编码规范七

    61.  除非你想重写子类中存在名称冲突的成员或者调用基类的构造函数否则不要使用base来访问基类的成员。

    // 正确使用base的例子

    public class Dog

    {

       public Dog(string name)

       {}

       virtual public void Bark( int howLong)

       {}

    }

    public class GermanShepherd : Dog

    {

       public GermanShe pherd(string name): base (name)

       {}

       override public void Bark(int  howLong) 

       {

          base .Bark(howLong);  

       }

    }

    62.  基于模板的时候要实现Dispose()和Finalize()两个方法。

    63.  通常情况下避免有从System.Object转换来和由System.Object转换去的代码,而使用强制转换或者as操作符替换。

    class SomeClass

    {}

    //避免:

    class MyClass<T> 

    {   

       void SomeMethod(T t)   

       {

          object temp = t;      

          SomeClass obj = (SomeClass)temp;    

       }

    }

    // 正确:

    class MyClass<T> where T : SomeClass

    {   

       void SomeMethod(T t)   

       {

          SomeClass obj = t;   

       }

    }

    64.  在一般情况下不要定影有限制符的接口。接口的限制级别通常可以用强类型来替换之。
    public class Customer

    {…}

    //避免:

    public interface IList<T> where T : Customer 

    {…}

    //正确:

    public interface ICustomerList : IList<Customer> 

    {…}

    65.  不确定在接口内的具体方法的限制条件。

    66.  总是选择使用C#内置(一般的generics)的数据结构。

  • 相关阅读:
    持续集成系统敏捷开发的基石
    云计算对IT产业的影响
    类封装的驱动程序
    竹林蹊径:深入浅出Windows驱动开发
    云计算的SPI服务模型
    什么是云计算
    多态
    我们需要什么样的计算
    电子工业的发展也带动了电子设计自动化技术
    云计算的部署模型
  • 原文地址:https://www.cnblogs.com/atun/p/2053401.html
Copyright © 2011-2022 走看看