C#相当于Java实例初始化程序

时间:2009-03-28 13:01:32

标签: c# java

Java实例中,变量可以由初始化块初始化,如下所示:

class Example {
    private int varOne;
    private int varTwo;

    {
        // Instance Initializer
        varOne = 42;
        varTwo = 256;
    }
}

C#中是否有等效的构造?

[编辑] 我知道这可以与实例变量声明一致。但是,我正在寻找类似于C#中的静态构造函数的东西,但是例如变量。

3 个答案:

答案 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#只有两种方法来初始化实例变量

  1. 在构造函数中
  2. 通过在声明点明确初始化变量
  3. 在创建对象之后但在构造函数运行之前无法进行初始化。

答案 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();
    }

这里有一个约束,你需要公开实例变量。