您好,我不知道这个"?"
运算符是什么。
有谁可以帮我解释一下?
公共虚拟小数? abc {get;设置;}
答案 0 :(得分:3)
这是Nullable<Decimal>
的简写。它可以为null,您可以检查.HasValue
以查看它是否为空,或者如果有值,您可以获取值.Value
。
答案 1 :(得分:1)
语法T?是Nullable的简写,其中T是值类型。您可以使用任何语法。
在这种情况下,2个属性很有用。 .HasValue
和.Value
if(abc.HasValue) a = abc.Value;
if(abc != null) a = abc.Value;
a = abc != null ? abc.Value : 0;
您也可以为它们指定空值。
decimal? abc = null;
答案 2 :(得分:0)
我给出了这种nullable
类型有用的场景。例如在你的情况下,abc,它可以保存4.6,7.9,9.45等值。
如果您考虑将abc的值初始化为undefined
或null
,那么如果您将abc定义为普通小数,则无法进行此操作
public decimal abc { get; set;}
所以如果你将abc定义为像
这样的可空类型public decimal? abc { get; set;}
您可以将null指定给abc
,如下所示
abc= null;
或十进制值
abc = 4.567
如果你想检查abc是否具有非空值,那么有可以检查
的属性 abc.HasValue()
这将返回true或false
并且要从abc
中获取实际的十进制值,您可以尝试这样
if(abc.HasValue())
var enteredValue = abc.Value
我希望这会有所帮助