为什么int不能为null? nullable int(int?)如何在C#中工作?

时间:2011-08-06 15:10:42

标签: c# object int nullable

我是C#的新手并且刚刚了解到C#中的对象可以为null,但int不能。

nullable int(int?)如何在C#中工作?

6 个答案:

答案 0 :(得分:12)

int是一种原始类型,只有ReferenceType个(对象)可以为空。您可以通过将其包装在对象中来使int为空:

System.Nullable<int> i;

-OR -

int? i;

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/nullable-types/using-nullable-types

答案 1 :(得分:2)

int等值类型包含直接值,而不是像ReferenceType这样的引用。值不能为null,但引用可以为null,这意味着它指向任何内容。一个价值不可能没有任何东西。值始终包含某种值

Nullable或Nullable类型是特殊值类型,除了正常的值类型值之外,它还支持额外的空值,就像引用类型一样

答案 2 :(得分:2)

int是值类型。它实际上是Int32类型。可以为空的对象是引用类型。在基本级别,差异在于值类型将使用变量存储值,其中引用类型将存储对值的引用。引用可以为null,表示它不指向值。值类型始终具有值。

Nullable包装一个值类型,允许您选择为null。用int?只是一个声明可空类型的编译器快捷方式。

答案 3 :(得分:2)

使用int可以拥有一个可以为null的int吗?或Nullable<int>两者完全相同。

答案 4 :(得分:1)

对象是引用类型,它们不能引用任何内容或NULL,但int是一个值类型,它只能保存一个值,并且不能引用任何内容。

答案 5 :(得分:0)

Primitive int类型不能在其二进制表示中表示null,但是Nullable<int>添加了一个额外的字节来表示该值的空信息。