如何创建具有空值支持的结构?

Ham*_*med 12 c# nullable structure

我是C#的新手.在c#中,我无法将结构的值设置为null,如何创建具有空值支持的结构?

小智 17

通过使用Generic Nullable <>类来包装它,可以使结构和值类型可为空.例如:

Nullable<int> num1 = null;
Run Code Online (Sandbox Code Playgroud)

C#通过在类型后添加问号为此提供语言功能:

int? num1 = null;
Run Code Online (Sandbox Code Playgroud)

同样适用于任何值类型,包括结构.

MSDN说明:可空类型(c#)


Cha*_*ion 6

您可以使用Nullable<T>哪个在C#中有别名.请记住,struct本身并不是null(编译器在幕后不同地处理null).它更像是一种Option类型.

Struct? value = null;
Run Code Online (Sandbox Code Playgroud)

由于@CodeInChaos提及Nullable<T>仅在处于非null状态时被装箱.

可空类型

拳击可空类型

  • `Nullable <T>`不仅仅是自然而然的.CLR魔术也支持它.例如,对于真正的"null",一个"null"可空框. (2认同)