C#的157个建议

1. 多用 readonly:但是实际试验,对于非静态对象,readonly 只能用于字段,不能用于属性(略有遗憾)

2. 避免在类型中声明静态成员

3. 微软为事件模型设定的几个规范:
①、委托类型的名称以EventHandler结束;
②、委托原型返回值为void;
③、委托原型具有两个参数: sender表示事件触发者,e表示事件参数;
④、事件参数的名称以EventArgs结束.

public class FileUploadedEventArgs : EventArgs {

    public int FileProgress { getset; }
}
 
public class FileUploader {
    public event EventHandler<FileUploadedEventArgs> FileUploaded;
 
    public void Upload() {
        var e = new FileUploadedEventArgs() { FileProgress = 100 };
        while (e.FileProgress > 0) {
            e.FileProgress--;
            if (FileUploaded != null) FileUploaded(this, e);
        }
    }
}

4.

那其实我目前就没有都写上out 修饰关键字。好好思考一下自己的代码。

我们知道子类转换到父类,在C#中是能够隐式转换的。这种子类到父类的转换就是协变。而另外一种类似于父类转向子类的变换,可以简单的理解为逆变。

5. 

posted @ 2024-09-29 15:13  oct  阅读(5)  评论(0编辑  收藏  举报