对于具有默认非零值的类成员,C#中的最佳实践是什么?
你可以这样写:
private int someField = 9;
public int SomeField
{
get ( return someField; }
set { someField = value; }
}或者这样:
public Int32 SomeField = 9;但是Int32和int是一样的。
那么,哪种方法更好,问题更少呢?
发布于 2011-11-20 18:07:04
只需使用C#别名,它们读起来更短,因此才存在。
您不应该将字段公开为public -这样会破坏封装。
简而言之,使用:
private int someField = 9;
public int SomeField
{
get ( return someField; }
set { someField = value; }
}发布于 2011-11-20 18:50:12
@Oded提出的答案的替代方案:
public int field1 { get; set; } //auto-implemented property, :)
public MyClass() {
field1 = 9; //or other default value
}发布于 2011-11-20 18:18:35
还要注意,如果你有多个构造函数,不要在它们的声明中显式初始化字段。因为编译器会为每个构造函数生成初始化这些字段的代码。对于这种情况,使用一个初始化字段的基构造器,并让其他构造器调用这个基构造器。
int field1;
int field2;
int field3;
public MyClass()
{
field1 = 12;
field2 = 1;
field3 = 5;
}
public MyClass(int SomeValue) : this()
{
field1 = SomeValue;
}
public MyClass(int SomeValue, int SomeOtherValue) : this()
{
field1 = SomeValue;
field2 = SomeOtherValue;
}https://stackoverflow.com/questions/8200799
复制相似问题