public decimal v1 {
get {
return this._v1;
}
set {
this._v1 = value ?? 0M; // also I tried, default(decimal)
}
}
错误消息说:
运营商'??'不能应用于'decimal'和'decimal'
类型的操作数为什么它不起作用,我该怎么办呢?
答案 0 :(得分:14)
decimal
类型不能为null,因此null-coalesce运算符在这里没有意义。只需将_v1
设置为value
。
答案 1 :(得分:5)
这些是值类型,不能null
您可以使用Nullable<decimal>
private decimal? _v1;
public decimal? V1
{
get
{
return this._v1;
}
set
{
this._v1 = value ?? 0M;
}
}
答案 2 :(得分:1)
答案 3 :(得分:1)
那是Null Coalescing Operator。由于decimal不能为null,因此不能使用decimal。
如果您需要此功能,可以使用可以设置为null的decimal?
:
public decimal? v1
{
get
{
return this._v1;
}
set
{
this._v1 = value ?? 0M;
}
}