我在我的一些代碼中有protected override void OnFormClosing(FormClosingEventArgs e)
,代碼分析給出了CA1062,因爲我不檢查e
是否爲空。EventArgs是否可以爲空?
約定是EventArgs
不應該爲空;這就是爲什麼我們有EventArgs.Empty
。當然,我可能是愚蠢的,並且在引發一些事件時通過null
而不是EventArgs.Empty
,但是在這裏它將是一些自動生成的代碼,它們將引發FormClosing事件,所以我只是壓制了警告。
是否存在一些可能導致EventArgs在框架中爲null並且不是由程序員造成的情況?
'EventArgs'是一個引用類型,C#沒有針對引用類型的'null'值保護。 – Enigmativity
[CA1062](https://msdn.microsoft.com/en-us/library/ms182182.aspx)是通用警告,您可以禁用/忽略它,以防**你**從不傳遞null(因爲你可以繼承自己的形式並自發上升事件等)。 *標準* [tag:winforms]事件處理程序不應該收到'null'。 – Sinatr
它不應該爲空,因爲首先它只會在事件發生時觸發,所以我們確信事件觸發,並且我們期望在我們的偵聽器中發生該事件的實例。 – Sherlock