2011-01-11 35 views
4

我正在開發一個winform應用程序。基於某些值(例如x),我想向用戶顯示警報,計時器更新影響x的其他值(y),並檢查x的值並向用戶顯示警報。 如果用戶單擊是,則顯示帶有/無選項的消息框,然後進行一些處理。屬性或索引器'System.Nullable.Value'不能分配給 - 它是隻讀的

如果用戶長時間沒有響應警報(比如10分鐘),可以顯示多條警報消息,我想阻止我創建了一個可爲空的DialogResult變量,這樣我就可以檢查用戶是否選擇了任何選項或不。現在的問題是,它不允許設置我的變量

taskAlert.Value=MessageBox.Show(kMessage, appErrorTitle, MessageBoxButtons.YesNo); 

我給我的錯誤,物業或索引「System.Nullable.Value」值不能被分配到 - 它只是

回答

7

問題是您正試圖直接分配到Value屬性。Value屬性被標記爲只讀,這就是編譯器向您顯示錯誤的原因。

相反,您應該爲類型爲Nullable<T>的變量指定一個值,其方式與您的任何其他類型完全相同。例如,上面的代碼會簡直成了:

taskAlert = MessageBox.Show(kMessage, appErrorTitle, MessageBoxButtons.YesNo); 

唯一的變化就是訪問值。您首先需要檢查HasValue property,如果它返回True,那麼您將使用Value property檢索值。如果HasValue屬性返回False,則該對象的值是未定義的。

1

對於什麼是值得的,你不需要在這裏有一個可爲空的值。

枚舉值DialogResult的值爲「無」,可用於指示用戶未選擇某個選項。

相關問題