Прочитать на английском

Поделиться через


Теперь методы WinForms вызывают исключение ArgumentNullException

Некоторые методы Windows Forms теперь вызывают ArgumentNullException для аргументов NULL в ситуациях, где ранее вызывали NullReferenceException.

Описание изменения

Ранее некоторые методы Windows Forms вызвали NullReferenceException при передаче аргумента, который имел значение NULL. Начиная с .NET 5, вместо этого такие методы вызывают ArgumentNullException для аргументов NULL.

Вызов ArgumentNullException соответствует поведению среды выполнения .NET. Это также улучшает процесс отладки, четко указывая, что аргумент имеет значение NULL и какой именно это аргумент.

Представленные версии

.NET 5.0

Если вы вызываете любой из этих методов и код в данный момент перехватывает NullReferenceException для аргументов NULL, вместо этого перехватите ArgumentNullException. Кроме того, рекомендуется обновить код, чтобы предотвратить передачу аргументов NULL в перечисленные методы.

Затронутые API

В следующей таблице перечислены затронутые методы и параметры:

Способ Наименование параметра Добавлено в версии
Control.ControlCollection(Control) owner Предварительная версия 1
TabControl.GetToolTipText(Object) item Предварительная версия 1
TableLayoutControlCollection(TableLayoutPanel) container Предварительная версия 1
ToolStripRenderer.OnRenderArrow(ToolStripArrowRenderEventArgs) e Предварительная версия 1
ToolStripRenderer.OnRenderItemCheck(ToolStripItemImageRenderEventArgs) e Предварительная версия 1
ToolStripRenderer.OnRenderItemImage(ToolStripItemImageRenderEventArgs) e Предварительная версия 1
ToolStripRenderer.OnRenderItemText(ToolStripItemTextRenderEventArgs) e Предварительная версия 1
ToolStripRenderer.OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs) > e Предварительная версия 1
DataGridViewComboBoxEditingControl.ApplyCellStyleToEditingControl(DataGridViewCellStyle) dataGridViewCellStyle Предварительная версия 2
RichTextBox.LoadFile(Stream, RichTextBoxStreamType) data Предварительная версия 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 предварительная версия 6
ListBox.ObjectCollection(ListBox, Object[]) owner, value предварительная версия 6
ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection) owner, value предварительная версия 6
ListBox.ObjectCollection.AddRange(Object[]) items предварительная версия 6
ListBox.ObjectCollection.AddRange(ListBox+ObjectCollection) value предварительная версия 6
ListBox.ObjectCollection.CopyTo(Object[], Int32) destination предварительная версия 6
ListBox.ObjectCollection.ICollection.CopyTo(Array, Int32) destination предварительная версия 6
ListView.SelectedIndexCollection(ListView) owner Предварительная версия 7
TreeNodeCollection.Find(String, Boolean) key имеет значение null или пуст предварительная версия 8
ListView.ListViewItemCollection.Find(String, Boolean) key имеет значение null или пуст RC1
ScrollableControl.OnPaintBackground(PaintEventArgs) e RC1