如何在运行时初始化常量,就像在C ++初始化列表中一样?

时间:2012-03-07 13:24:30

标签: c# initialization const

有没有办法在运行时初始化c#中的常量值,就像c ++中的初始化列表一样?

具体来说,我想确保在创建主类后不更改特定值(使用的端口)。也许有另一种方法可以做到这一点。

2 个答案:

答案 0 :(得分:3)

您可以使用readonly关键字:

  

当字段声明包含只读修饰符时,赋值为   声明引入的字段只能作为其中的一部分出现   声明或在同一类的构造函数中。

示例(从链接的MSDN页面复制):

class Age
{
    readonly int _year;
    Age(int year)
    {
        _year = year;
    }
    void ChangeYear()
    {
        //_year = 1967; // Compile error if uncommented.
    }
}

答案 1 :(得分:0)

您可以使用不带setter的静态属性:

private static int FPort = 1234;
public static int Port { get { return FPort; } }