可能重复:
Best Practice: Initialize class fields in constructor or at declaration?
这两个类之间有什么区别吗?
public class Test
{
public Guid objectId = Guid.NewGuid();
}
public class Test2
{
public Guid objectId;
public Test2()
{
objectId = Guid.NewGuid();
}
}
我很好奇他们之间是否有任何速度或性能差异。一种方法比另一种方法更受欢迎吗?我个人喜欢第一个更好,因为它使用更少的线,但除非它们实际上是相同的执行,这是一个不好的理由选择一个在另一个。
答案 0 :(得分:0)
从表现的角度来看,我认为这根本不重要。最重要的是保持一致。通过这种方式,您和所有阅读代码的人都可以轻松跟进。
答案 1 :(得分:0)
我认为在第一个场景中,如果您使用重载的构造函数,则会在所有构造函数中初始化该成员。第二种情况要求您在所有构造函数中显式初始化成员,或者特别调用默认构造函数(或另一个也初始化成员的构造函数)以进行初始化。
从性能角度来看,我认为这两者基本相同,但我认为这是简单性与灵活性的关系。您在第一个场景中获得了更多的简单性,但是如果需要,您将无法在构造函数的版本中初始化成员。
麦克