c# - 声明具有空值的用户定义类型常量有什么用?

标签 c# types reference constants

public class TestClass
{
    const MyType SOMECONSTANT = null;

    protected string TestString { get; set; }    
}

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

上面的代码是有效的并且可以编译。为什么 C# 允许使用 constnull 的引用类型?我怎样才能使用这个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/

相关文章:

c# - 64 位上按位和长整数与整数的性能

c# - 如何从 C# 计算 MongoQuery 的时间

c - 定义用于多个文件的枚举数据类型

javascript - 如何存储对刚刚插入的 div 的引用

c++ - 通过引用传递指针

c# - 如何在 xamarin studio/monodevelop 中添加 system.core.dll 引用到我的项目

c# - 如何在 Irony.NET 中允许重复

python - 更改类型(pandas dataframe)时如何处理 'invalid literal for int() with base 10'?

haskell - 如何在 Haskell 中编写事件总线?

javascript - 在 JavaScript 中分配函数处理程序会创建副本还是仅创建引用?