使用null值声明用户定义的类型常量有什么用?

时间:2013-02-18 22:06:55

标签: c# types reference const

public class TestClass
{
    const MyType SOMECONSTANT = null;

    protected string TestString { get; set; }    
}

public class MyType
{
    protected string FieldA { get; set; }
}

以上代码有效且编译。为什么C#允许引用类型constnull?如何使用此SOMECONSTANT,因为这将永远是null

1 个答案:

答案 0 :(得分:2)

它可以用作占位符,它将在开发周期的某个时刻保存指定对象的实例。通常,常量用作比较的东西。考虑到这个想法并假设程序员B将要实现并实例化对象PERFECT_TYPE,您可以说类似

const MyType PERFECT_TYPE = null;

以后我可能有

if (myInstance.Equals(TestClass.PERFECT_TYPE)) { /*do stuff*/ }

虽然在这种情况下我会指出你需要MyType.Equals()的实现,但你明白了。这样的事情在存根中并不罕见,特别是在敏捷开发中。我会说,存根更可能是一个属性而不是一个常数但是,每个工具都是为了它的目的......