public class TestClass
{
const MyType SOMECONSTANT = null;
protected string TestString { get; set; }
}
public class MyType
{
protected string FieldA { get; set; }
}
以上代码有效且编译。为什么C#允许引用类型const
与null
?如何使用此SOMECONSTANT
,因为这将永远是null
?
答案 0 :(得分:2)
它可以用作占位符,它将在开发周期的某个时刻保存指定对象的实例。通常,常量用作比较的东西。考虑到这个想法并假设程序员B将要实现并实例化对象PERFECT_TYPE,您可以说类似
const MyType PERFECT_TYPE = null;
以后我可能有
if (myInstance.Equals(TestClass.PERFECT_TYPE)) { /*do stuff*/ }
虽然在这种情况下我会指出你需要MyType.Equals()
的实现,但你明白了。这样的事情在存根中并不罕见,特别是在敏捷开发中。我会说,存根更可能是一个属性而不是一个常数但是,每个工具都是为了它的目的......