在Java
实例中,变量可以由初始化块初始化,如下所示:
class Example {
private int varOne;
private int varTwo;
{
// Instance Initializer
varOne = 42;
varTwo = 256;
}
}
C#
中是否有等效的构造?
[编辑] 我知道这可以与实例变量声明一致。但是,我正在寻找类似于C#
中的静态构造函数的东西,但是例如变量。
答案 0 :(得分:7)
创建一个实例构造函数,任何其他本地构造函数将在初始化列表中调用:
private Example ()
{
//initialize all fields here
}
public Example (/*list of parameters*/) : this()
{
//do specific work here
}
如果应用程序的逻辑已经需要默认构造函数,那么就停止
private Example ()
带
private Example (object dummy)
,当然,相应地修改了启动电话。
答案 1 :(得分:5)
在C#中确实没有等价物。 C#只有两种方法来初始化实例变量
在创建对象之后但在构造函数运行之前无法进行初始化。
答案 2 :(得分:0)
如果这是您想要的特定情况,那么可能的范围如下:
class Example {
public int varOne;
public int varTwo;
public Example(){
Console.WriteLine("varOne : " + varOne + ", varTwo : " + varTwo);
}
public void getValues()
{
Console.WriteLine("varOne : " + varOne + ", varTwo : " + varTwo);
}
}
static void Main(string[] args)
{
Example e = new Example{ varOne = 42, varTwo = 256};
e.getValues();
}
这里有一个约束,你需要公开实例变量。