有没有办法在C#中设置空值为十进制数据类型而不使用Nullable <decimal>或'decimal?'?

时间:2017-07-11 10:42:00

标签: c#-4.0

公共十进制值{得到;组; }

我想在不使用Nullable或'?'

的情况下为Value属性设置null值

1 个答案:

答案 0 :(得分:0)

您正在处理价值类型。值类型不能具有NULL值。想象一个值类型,如整数数组。

例如,具有两个属性X = 12和Y = 15的Point在概念上将在内存中表示如下:

[12,15]

如果你添加一个标有名称“Name”的“字符串”属性,那么在数组中将存储指向Heap的内存地址到该字符串:

[12,15,65535]其中65535表示堆地址。

考虑到这一点,值类型显然不能为空,在最好的情况下,您将拥有一个满零值的数组。

Nullable是一个实际上有两个属性的值类型:表示的T值类型和一个额外的布尔值,表示概念上我们是否有值。所以我们仍然有一个结构,但这次我们有一个额外的标志,表明“可空性”属性。