C#:可以为nullable类型(int?)对象?

Nic*_*aro 1 c# nullable object

我从这篇文章中了解到C#中的值类型不是对象.也就是说,它们不会从System.Object继承.

假设我的逻辑到目前为止,是可以为空的类型,例如int ?,对象.他们是从Object继承的吗?

如果是这样,它们是否受到与其他对象相同的规则和约束,或者是否存在管理其行为的特殊规则?

作为参考,这个问题来自对null coalesce运算符的工作的调查.

the*_*oop 11

不正确 - 值类型对象,但它们的行为与引用类型不同 - 它们是按值传递,而不是按引用传递.所以,Nullable<T>(这是什么T?)是一个结构,因此继承自System.ValueType和System.Object.C#编译器中有Magic,它使可空类型的行为与引用类型相同,与null和??有关,但它们总是具有按值复制的语义.