如何在课堂上包含“空”常量

时间:2013-01-22 21:50:19

标签: c# .net class const member

我有一个类,我想在System.Drawing中包含一个类似于Point.Empty的“Empty”常量成员。这可能吗?

这是给出错误的简化版本:

public class TrivialClass
{
    public const TrivialClass Empty = new TrivialClass(0);
    public int MyValue;
    public TrivialClass(int InitialValue)
    {
        MyValue = InitialValue;
    }
}

给出的错误是: TrivialClass.Empty属于TrivialClass类型。除string之外的引用类型的const字段只能用null初始化。

如果重要,我想像这样使用它:

void SomeFunction()
{
    TrivialClass myTrivial = TrivialClass.Empty;
    // Do stuff ...
}

2 个答案:

答案 0 :(得分:11)

您可以将static readonly用于这些类型。常量只能用文字值(例如数字,字符串)初始化。

public class TrivialClass
{
    public static readonly TrivialClass Empty = new TrivialClass(0);
    public int MyValue;
    public TrivialClass(int InitialValue)
    {
        MyValue = InitialValue;
    }
}

查找定义后。 Point.Empty也是static readonlyReference here

答案 1 :(得分:1)

快速拍摄,但我建议Point.Empty是静态成员,而不是常量:

public class TrivialClass
{
    public static readonly TrivialClass Empty = new TrivialClass(0);
    ...
}