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