从我读过的内容IEnumerable
无法设置为可选。我有一个方法public IEnumerable<StatusInt> StatusInts { get; set; }
,如果用户没有从组合框中选择一个选项,它总是以默认值0传递。对于简单的数据类型,我可以添加?并且参数变为可选,并且传入null。是否可以使用IEnumerable
答案 0 :(得分:2)
可以使用?
字符将值类型设置为可选。
int?
'只是Nullable<int>
IEnumerable
不是值类型,它是引用类型。引用类型已经是可选的 - 如果需要,您可以返回null
。
IEnumerable<StatusInt> StatusInts
{
get
{
if(this.OptionIsSelected)
{
return GenerateOptions(this.Option);
}
else
{
return null;
}
}
}
但是,我建议你不要这样做。相反,返回一个空的可枚举。这样您的调用代码就不需要检查null
值。您不太可能无意中触发空引用异常。
IEnumerable<StatusInt> StatusInts
{
get
{
if(this.OptionIsSelected)
{
return GenerateOptions(this.Option);
}
else
{
return Enumerable.Empty<StatusInt>();
}
}
}