我有一个自定义类Diary,它具有可为空的属性DeadlineType
在我的一个表单上,我在DropDownList模式下有一个ComboBox,其中填充了DeadlineType可以采用的所有可能值。当选择日记时,表单中会填充所有属性,但是我遇到了DeadlineType属性的问题,当它为null时,它需要的代码比我认为的要多。
if (amendDiary.DeadlineType != null)
{
cboDeadlineType.Text = amendDiary.DeadlineType.ToString();
}
else
{
cboDeadlineType.Text = null;
}
我确信必须有一种更简洁的方法来实现这一目标,或者当然希望如此,因为在我的应用程序中这种情况会重复很多,即将空值发布到ComboBoxes。
我确实尝试了
cboDeadlineType.Text = amendDiary.DeadlineType.ToString() ?? null
但是这会导致“对象未设置为实例”错误。
答案 0 :(得分:3)
试试这个:
cboDeadlineType.Text = (amendDiary.DeadlineType ?? "").ToString();
请注意,将ComboBox.Text
设置为null
与将其设置为""
相同(在两种情况下,组合文本均为空)。
另一种解决方案是使用Convert.ToString
方法:
cboDeadlineType.Text = Convert.ToString(amendDiary.DeadlineType);
使用该解决方案,如果输入为null
,则cboDeadlineType.Text
将完全分配给null
。
答案 1 :(得分:0)
试
cboDeadlineType.Text = amendDiary.DeadlineType!=null ?amendDiary.ToString() :"";