我的viewmodel中有一个int属性,它返回一个自定义类属性。我检查类引用是否为null,在这种情况下,我想向视图返回一些空值,以便不显示任何值。
代码是这样的:
public int percentage
{
get {
if (customClass != null)
{
return customClass.getInt();
}
else
{
return 0;
}
...
}
答案 0 :(得分:4)
如果要返回“无值”结果,则应返回null
。由于这不是int
的有效值,因此您必须将属性的类型更改为int?
:
public int? Percentage
{
get { return customClass == null ? null : customClass.getInt(); }
}
如果您之前没有看过语法,int?
是System.Nullable<int>
的简写。
不要忘记,您还可以通过为绑定定义合适的Converter
,将Percentage
的值转换为您真正喜欢的任何内容。
答案 1 :(得分:1)
int
是值类型,因此不能为null。相反,您可以返回int?
(这是Nullable<int>
的简写),可以为null,或者您可以指定一些特定的int
值,例如0
。 customClass == null
。这当然取决于您的要求。
public int? Percentage {
get {
if (customClass != null)
return customClass.getInt();
else
return null;
}
}
调用Percentage
的任何内容都需要检查Percentage.HasValue
以查看它是否为空,并使用Percentage.Value
提取实际的整数,如果Percentage.HasValue
将会有效是true
。