我正在开发一个winform应用程序。根据一些值(比如x),我想向用户显示一个警报,一个计时器更新其他值(y),这会影响x,并检查x的值并向用户显示警报。 警报显示带有是/否选项的消息框,如果用户单击是,则进行一些处理。
如果用户长时间没有响应警报(比如说10分钟),可以显示多条警报消息,我想防止我创建了一个可以为空的DialogResult变量,所以我可以检查用户是否选择了任何选项或不。现在的问题是它不允许设置该变量的值
taskAlert.Value=MessageBox.Show(kMessage, appErrorTitle, MessageBoxButtons.YesNo);
我给了我错误-Property或索引器'System.Nullable.Value'无法分配 - 它是只读的
答案 0 :(得分:7)
问题是您尝试直接分配给Value
属性。 Value
属性被标记为只读,这就是编译器的原因告诉你那个错误。
相反,您应该为类型Nullable<T>
的变量赋值,其方式与任何其他类型完全相同。例如,上面的代码将简单地变为:
taskAlert = MessageBox.Show(kMessage, appErrorTitle, MessageBoxButtons.YesNo);
唯一改变的是访问值。您首先需要检查HasValue
property,如果它返回True,那么您将使用Value
property检索该值。如果HasValue
属性返回False,则对象的值未定义。
答案 1 :(得分:1)
对于它的价值,你不需要这里可以为空的值。
DialogResult枚举的值为“None”,可用于指示用户未选择选项。