我有一个类,我想在 System.Drawing 中包含一个类似于 Point.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 ...
}
最佳答案
您可以对这些类型使用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 readonly
。 Reference here .
关于c# - 如何在类中包含 "Empty"常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14468646/