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
?
最佳答案
它可以用作占位符,在开发周期稍后的某个时刻保存指定对象的实例。通常,常量用作比较对象。考虑到这个想法并假设程序员 B 稍后将实现并实例化对象 PERFECT_TYPE,您可以这样说
const MyType PERFECT_TYPE = null;
以后我可能会有
if (myInstance.Equals(TestClass.PERFECT_TYPE)) { /*do stuff*/ }
虽然在这种情况下我会指出您需要 MyType.Equals()
的实现,但您明白了。这样的事情在 stub 中并不少见,特别是在敏捷开发中。我想说的是, stub 更有可能是一个属性而不是一个常量,但是,每个工具都有其用途......
关于c# - 声明具有空值的用户定义类型常量有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946172/