C#,运营商'??' 不能应用于'decimal'和'decimal'类型的操作数

Exp*_* be 9 c# asp.net

public decimal v1 {
  get {
    return this._v1; 
  }
  set {
    this._v1 = value ?? 0M;  // also I tried, default(decimal)
  }
}
Run Code Online (Sandbox Code Playgroud)

错误信息说:

接线员'??' 不能应用于'decimal'和'decimal'类型的操作数

为什么它不起作用,我应该如何使其工作?

Raw*_*ing 15

decimal类型不能为空,所以空聚结运营商在这里是没有意义的.只是设置_v1value.

  • 如果你有一个可以为零的十进制怎么办?公共小数的示例?总金额 (2认同)

Nas*_*ine 5

那些是价值类型,不能null你可以使用Nullable<decimal>

private decimal? _v1;
public decimal? V1
{
    get
    {
        return this._v1;
    }
    set
    {
        this._v1 = value ?? 0M;
    }

}
Run Code Online (Sandbox Code Playgroud)