如何在C#中将Null值赋给Non-Nullable类型变量?

时间:2013-03-19 05:10:41

标签: c#

如我已宣布,

double x;

现在我想分配

x = NULL我该怎么做?我已经看到了其他一些答案,但无法理解它们,这就是打开这个主题的原因。

5 个答案:

答案 0 :(得分:14)

您必须将其声明为可以为空的类型:

double? x;
x = null;

像double这样的非可空类型不能为空

答案 1 :(得分:12)

您无法将null分配给非可空类型

您可以将NaN(非数字)用于不可为空的double

double x;
x = double.NaN;

答案 2 :(得分:1)

Nullable类型是System.Nullable(Of T)结构的实例。可空类型可以表示其基础值类型的正确值范围,以及额外的空值。例如,可以为发音为“Nullable of Int32”的Nullable分配从-2147483648到2147483647的任何值,或者可以为其指定空值。可以为Nullable赋值true false或null。在处理包含可能未赋值的元素的数据库和其他数据类型时,将null分配给numeric和Boolean类型的能力尤其有用。例如,数据库中的布尔字段可以存储值true或false,也可以是未定义的。

  

一倍? amount = null;

     

http://msdn.microsoft.com/en-us/library/vstudio/2cf62fcy.aspx

可能重复:

Why can't I set a nullable int to null in a ternary if statement?
 Nullable types and the ternary operator: why is `? 10 : null` forbidden?

答案 3 :(得分:0)

简短的回答:你不能。

double只能包含有效的双精度浮点值。

答案 4 :(得分:0)

use 
double? x;

并将空值赋给x变量,如

x = null;