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


Создание типа массива System.Void запрещено

Больше не разрешено создавать System.Type экземпляр для массива System.Void.

Прежнее поведение

typeof(void).MakeArrayType() Ранее вернулся System.Type экземпляр.

Новое поведение

Начиная с .NET 9 создается typeof(void).MakeArrayType() исключение.

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

.NET 9( предварительная версия 1)

Тип критического изменения

Это изменение поведения.

Причина изменения

System.Void Массив является недопустимым типом. Этот тип отклоняется в некоторых случаях (например, void[] в C# не компилируется) и невозможно создать массивы этого типа.

Среда выполнения .NET позволяет создавать недопустимый тип в некоторых ситуациях. Однако попытки использовать этот недопустимый тип в других API среды выполнения .NET часто приводят к непредвиденному поведению. Чтобы сделать поведение надежным и согласованным, лучше запретить создавать эти недопустимые типы массивов во всех ситуациях.

Удалите код, который пытается создать тип для массива System.Void.

Затронутые API