14

正如我所声明的,

双x;

现在我想分配

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

4

5 回答 5

20

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

double? x;
x = null;

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

于 2013-03-19T05:13:14.523 回答
20

您不能将 null 分配给不可为空的类型

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

double x;
x = double.NaN;
于 2013-03-19T05:16:10.240 回答
1

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

双倍的?金额=空;

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

可能的重复:

为什么我不能在三元 if 语句中将可为空的 int 设置为空?
可空类型和三元运算符:为什么是`?10:null`禁止?

于 2013-03-19T05:16:53.937 回答
0

简短的回答:你不能。

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

于 2013-03-19T05:13:26.340 回答
0
use 
double? x;

并将空值分配给 x 变量,例如

x = null;
于 2013-03-19T05:15:18.433 回答