是否可以像这样初始化变量:
class A
{
public int variable;
}
class B : A
{
variable = 123;
}
而不是像这样使用构造函数? :
class A
{
public int variable;
}
class B : A
{
public B()
{
variable = 123;
}
}
此处:Initialize class fields in constructor or at declaration?
这两种方式似乎是等价的,但是在派生类中使用第一种方式似乎是非法的。那么,是否可以使用构造函数以外的其他方式来初始化变量呢?
最佳答案
当你声明一个类时,你可以初始化一个类的字段:
public class Example
{
public int Number = 3;
}
或者您可以在如下构造函数中这样做:
public class Example;
{
public int Number;
public Example(int number)
{
Number = number;
}
}
只有这两个选项。在您的情况下,您有一个基类,您可以在其中声明一个字段。所以这个字段可以在声明时或通过构造函数初始化。这就是以下内容非法的原因:
class A
{
public int variable;
}
class B : A
{
variable = 123;
}
Then, is it possible to initialize variables in the other way than using constructor?
当然可以,但是你必须在基类中这样做:
class A
{
public int variable = 123;
}
关于c# - 我必须通过构造函数初始化派生变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41534343/