有些 Windows Forms 方法現在會因為引數是 null,而擲回 ArgumentNullException (先前是擲回 NullReferenceException)。
變更描述
先前,如果傳遞的引數為 null,某些 Windows Forms 方法會擲回 NullReferenceException。 從 .NET 5 開始,出現引數是 null 時,這些方法現在改為擲回 ArgumentNullException。
擲回 ArgumentNullException 符合 .NET 執行階段的行為。 也藉由清楚傳達引數為 null 以及其為哪個引數,來改善偵錯體驗。
導入的版本
.NET 5.0
建議的動作
如果呼叫上述任一方法,而您的程式碼目前針對引數為 null 會攔截 NullReferenceException,請改為攔截 ArgumentNullException。 此外,請考慮更新程式碼,避免將 null 引數傳遞到列出的方法。
受影響的 API
下表列出受影響的方法及其參數:
方法 |
參數名稱 |
新增的版本 |
Control.ControlCollection(Control) |
owner |
Preview 1 |
TabControl.GetToolTipText(Object) |
item |
Preview 1 |
TableLayoutControlCollection(TableLayoutPanel) |
container |
Preview 1 |
ToolStripRenderer.OnRenderArrow(ToolStripArrowRenderEventArgs) |
e |
Preview 1 |
ToolStripRenderer.OnRenderItemCheck(ToolStripItemImageRenderEventArgs) |
e |
Preview 1 |
ToolStripRenderer.OnRenderItemImage(ToolStripItemImageRenderEventArgs) |
e |
Preview 1 |
ToolStripRenderer.OnRenderItemText(ToolStripItemTextRenderEventArgs) |
e |
Preview 1 |
ToolStripRenderer.OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs) > |
e |
Preview 1 |
DataGridViewComboBoxEditingControl.ApplyCellStyleToEditingControl(DataGridViewCellStyle) |
dataGridViewCellStyle |
Preview 2 |
RichTextBox.LoadFile(Stream, RichTextBoxStreamType) |
data |
Preview 2 |
ListBox.IntegerCollection(ListBox) |
owner |
Preview 5 |
ListBox.IntegerCollection.CopyTo(Array, Int32) |
destination |
Preview 5 |
ListViewGroup.ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
info |
Preview 5 |
VisualStyleRenderer(String, Int32, Int32) |
className |
Preview 5 |
ListBox.ObjectCollection(ListBox) |
owner |
Preview 6 |
ListBox.ObjectCollection(ListBox, Object[]) |
owner 、value |
Preview 6 |
ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection) |
owner 、value |
Preview 6 |
ListBox.ObjectCollection.AddRange(Object[]) |
items |
Preview 6 |
ListBox.ObjectCollection.AddRange(ListBox+ObjectCollection) |
value |
Preview 6 |
ListBox.ObjectCollection.CopyTo(Object[], Int32) |
destination |
Preview 6 |
ListBox.ObjectCollection.ICollection.CopyTo(Array, Int32) |
destination |
Preview 6 |
ListView.SelectedIndexCollection(ListView) |
owner |
Preview 7 |
TreeNodeCollection.Find(String, Boolean) |
key 為 null 或空白 |
預覽版 8 |
ListView.ListViewItemCollection.Find(String, Boolean) |
key 為 null 或空白 |
RC1 |
ScrollableControl.OnPaintBackground(PaintEventArgs) |
e |
RC1 |