【发布时间】:2013-09-15 15:25:01
【问题描述】:
这个问题更多是关于将? 添加到值类型而不是int?
在 C# 中,int 是一种值类型。
int? 是值类型还是引用类型?
在我看来它应该是一个引用类型,因为它可以是null。
【问题讨论】:
-
null对Nullable<T>的支持是语言团队和编译器的幕后花招。 -
整数? === 可空
。 Nullable 是一个值类型,因此 int?是一个值类型。我相信添加了 Nullable 类型是为了与数据库集成一起使用,其中强类型数据字段(在本例中为 int)可以是 0 或更大,或者 null...所有这些在数据库的上下文中都是有效的。 -
不错的答案 series0ne
-
您的逻辑是:
null始终是引用类型的“不引用”值,null是可空值类型的合法值,因此可空值类型是引用类型。如果两个前提为真,则此三段论是正确的,但第一个前提为假。可空值类型只不过是一个布尔值,它表示绑定到不可空值的空值。如果 bool 为 false,则该值被视为 null。可空值类型的空值与空引用的位不同;它们完全不同。
标签: c# int value-type reference-type