【发布时间】:2011-09-15 23:10:49
【问题描述】:
如何在 C# 中创建 int、bool 等不可为空的值类型?
【问题讨论】:
-
你会在什么情况下使用这样的东西?我的意思是,你想要完成什么?使用使用 C# 中的类创建的对象时,您始终可以检查 null。奇怪的是您使用的是“类型”一词。如果您在问题中添加了一些上下文,则更容易找到解决方案。
-
@stephenbayer:空值是坏的。运行类型空值检查与运行类型类型检查根本没有区别。如果我给你一个字符串并且你在它上面调用方法,你不会知道它是否可以为空,直到它在运行时爆炸。某些语言具有不可为空的引用类型;如果要表示空值,则使用不同的数据类型(相当于许多语言中的
option<string>),因此您可以在编译时通过类型系统进行通信并强制执行空值检查。见stackoverflow.com/questions/641328/…。 -
@Juliet 同意了。实际上,我只是对使用的术语感到困惑,将其称为类型,我不知道他是指类、结构还是其他用户定义的类型,例如枚举..等等等等。我已经习惯了在使用它们之前检查所有内容是否为空。但我完全理解您关于设计时间优势的观点。
-
fixed 关键字创建一个值类型。不完全算作 C# 编程中普遍有用的类型。
标签: c# non-nullable