none
字段的初始化问题 RRS feed

  • 问题

  • 通过构造函数在初始化类内部字段时,是通过构造函数直接将初始值赋给类内部字段好,还是通过属性将初始值赋给类内部字段好?为什么?
    万物皆变,规则永恒。
    2011年3月9日 14:18

答案

  • 2个问题,一个是字段赋值的时间,有一个原则是尽量在构造函数中对字段赋值。

    第二个问题应该是类内部使用字段还是使用属性,这个看你自己,都可以。属性和类在访问方式上不同,属性是通过_set,_get方法调用,字段是直接地址访问。对于发布的dll,字段升级为属性是危险的,因为这意味着使用dll的程序需要重新编译,但类内部,你可以混用,看情况,要求效率的,就用字段,如果有些字段直接操作不方便,需要一些预处理的,就用属性。


    2011 c# mvp China
    2011年3月10日 1:47
    版主

全部回复

  • 2个问题,一个是字段赋值的时间,有一个原则是尽量在构造函数中对字段赋值。

    第二个问题应该是类内部使用字段还是使用属性,这个看你自己,都可以。属性和类在访问方式上不同,属性是通过_set,_get方法调用,字段是直接地址访问。对于发布的dll,字段升级为属性是危险的,因为这意味着使用dll的程序需要重新编译,但类内部,你可以混用,看情况,要求效率的,就用字段,如果有些字段直接操作不方便,需要一些预处理的,就用属性。


    2011 c# mvp China
    2011年3月10日 1:47
    版主
  • 谢谢,明白了。那也就是说对外发布dll库最好对属性赋值,省得以后麻烦。
    万物皆变,规则永恒。
    2011年3月10日 2:10