可能的重复项:
C# Nullablevs. int?:有什么区别吗?
当使用 NMG(Nhibernate 映射生成器)转换可为空的类型时,我将它们作为System.Nullable<decimal>
而通过使用Visual Nhibernate跟踪包,我得到了十进制的可空类型?
我知道什么是十进制?确实,在非技术术语中出现空值的情况下,它被接受而不会抛出错误。
但是我无法找出十进制之间是否有任何区别? 和System.Nullable<decimal>
与否?
来自 MSDN - 可为空的类型(C# 编程指南)
语法 T? 是
System.Nullable<T>
的简写,其中 T 是值类型。这两种形式是可以互换的。
没有区别。 decimal?
在编译时转换为Nullable<decimal>
。它可以说句法糖
十进制?是执行System.Nullable的简短方法,这已经在 ?C# 中的(可为空)运算符
希望对您有所帮助。
两者之间没有区别。 类型? 只是一个快捷方式表示法。