初始设置的类声明在内部是否与在构造函数中设置它们相同?
例子:
class test
{
int test1 = 5;
}
那和有什么区别吗
class test
{
int test1;
public test()
{
test1 = 5;
}
}
如果没有区别,哪个更正确?
最佳答案
在您提供的特定情况下,没有功能差异。但是,当涉及到继承时,字段初始值设定项的行为方式可能会令人惊讶。字段初始值设定项实际上是在构造函数之前调用的,构造函数是从派生最少到派生最多的顺序调用的,而字段初始值设定项是从派生最多到派生最少的顺序调用的。因此,如果类 A 派生自 B。当创建 A 的实例时,将执行以下顺序:A 的字段初始值设定项、B 的字段初始值设定项、System.Object 构造函数、B 的构造函数、A 的构造函数。
以上仅适用于实例字段初始化器/构造器。对于静态字段初始值设定项/构造函数,行为完全不同。
至于哪个在你的情况下是正确的,没有商定的惯例,但读者通常会赞赏一致性。
关于c# - 最初设置的类声明在内部是否与在构造函数中设置它们相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11733786/