C#的157个建议
1. 多用 readonly:但是实际试验,对于非静态对象,readonly 只能用于字段,不能用于属性(略有遗憾)
2. 避免在类型中声明静态成员
3. 微软为事件模型设定的几个规范:
①、委托类型的名称以EventHandler结束;
②、委托原型返回值为void;
③、委托原型具有两个参数: sender表示事件触发者,e表示事件参数;
④、事件参数的名称以EventArgs结束.
public
class
FileUploadedEventArgs : EventArgs {
public
int
FileProgress {
get
;
set
; }
}
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.