摘要:
9.6 常量性 有的语言,如非托管C++,允许将方法或参数声明为常量,从而禁止实例方法中的代码更改对象的任何字段,或者更改传给方法的任何对象。CLR没有提供这个功能。 非托管C++将实例方法或参数声明为const只能防止程序员用一般的代码来更改对象或参数。方法内部总是可以更改对象或实参的。 要么是通 阅读全文
摘要:
9.5 参数和返回类型的设计规范 声明方法的参数类型,应尽量指定最弱的类型,宁愿要接口也不要基类。 例如写方法来处理一组数据项,最好用接口,比如IEnumerable<T>声明参数,而不要用强数据类型,比如List<T>或者更强的接口类型,比如ICollection<T>或IList<T> 原因是调 阅读全文
摘要:
9.4 向方法传递可变数量的参数 为了接受可变数量的参数,方法要像下面这样声明 params只能应用于方法签名中的最后一个参数。 可以向下面这样调用该方法。 数组能用任意数量的一组元素来初始化,再传给Add进行处理。 由于params关键字的存在,我们可以这样调用Add方法。 params关键字告诉 阅读全文
摘要:
9.3 以传引用的方式向方法传递参数 CLR默认所有方法参数都传值。传递引用类型的对象时,对象引用或者说指向对象的指针,被传给方法。 注意引用本身是传值的,意味着方法能修改对象。 对于值类型的实例,传给方法的是实例的一个副本,意味着方法获得他专用的值类型实例副本,调用者中的实例不受影响。 out和r 阅读全文