C#,运算符'';无法应用于类型为';十进制';和';十进制';
错误消息显示: 运算符“??”不能应用于“decimal”和“decimal”类型的操作数。C#,运算符'';无法应用于类型为';十进制';和';十进制';,c#,asp.net,C#,Asp.net,错误消息显示: 运算符“??”不能应用于“decimal”和“decimal”类型的操作数。 为什么它不工作,我应该如何使它工作?decimal类型不能为null,因此null coalesce操作符在这里没有意义。只需将\u v1设置为值这些是值类型,不能为空您可以使用空 是十进制吗?还是小数点 这个??是十进制的吗?但不是小数,因为小数永远不能为空 这就是问题所在。因为decimal不能为null,所以它对decimal没有任何用处 您可以使用十进制?,如果需要此功能,可以将其设置为null
为什么它不工作,我应该如何使它工作?decimal类型不能为null,因此null coalesce操作符在这里没有意义。只需将
\u v1
设置为值
这些是值类型,不能为空
您可以使用空
是十进制吗?还是小数点 这个??是十进制的吗?但不是小数,因为小数永远不能为空 这就是问题所在。因为decimal不能为null,所以它对decimal没有任何用处 您可以使用
十进制?
,如果需要此功能,可以将其设置为null:
private decimal? _v1;
public decimal? V1
{
get
{
return this._v1;
}
set
{
this._v1 = value ?? 0M;
}
}
如果您认为<强>默认十进制值0 < /强>被认为是空的、空的或未设置的,并且您想<强>使用<代码>值< /> >仅当它不是0< /强>时,您可以这样做:
public decimal? v1
{
get
{
return this._v1;
}
set
{
this._v1 = value ?? 0M;
}
}
这些是值类型,不能为
null
Aha!我明白了:)谢谢你!如果你有一个可为空的十进制怎么办?公共十进制的例子?TotalAmount如果十进制数为空,则合并将起作用,
public decimal? v1
{
get
{
return this._v1;
}
set
{
this._v1 = value ?? 0M;
}
}
decimal nextBest = 10M;
public decimal v1 {
get {
return this._v1;
}
set {
// Use value by default (only if it's not 0), Otherwise use a different number.
this._v1 = (value != 0)? value : nextBest;
}
}