这两个代码有什么区别?
class SomeClass
{
SomeType val = new SomeType();
}
和
class SomeClass
{
SomeType val;
SomeClass()
{
val = new SomeType();
}
}
更喜欢哪种方法?
答案 0 :(得分:7)
几乎之间没有区别。在两种情况下,字段的赋值都将在构造函数中发生。但是,与基类构造函数相比,它有多么不同。请使用以下代码:
class Base
{
public Base()
{
}
}
class One : Base
{
string test = "text";
}
class Two : Base
{
string test;
public Two()
{
test = "text";
}
}
在这种情况下,基类构造函数将在类One
中的字段赋值后调用,但之前类{{1}中的赋值}。
答案 1 :(得分:2)
第一个版本允许您定义多个构造函数,而不必记住将= new SomeType()
放在每个构造函数中。