Udostępnij za pośrednictwem


Konstruktorzy metod generują parametry z wartością HasDefaultValue ustawioną na false

System.Reflection.Emit.ConstructorBuilder a System.Reflection.Emit.MethodBuilder teraz generuj parametry metody, które po odzwierciedleniu mają ParameterInfo.HasDefaultValue ustawioną wartość false.

Poprzednie zachowanie

Wcześniej i MethodBuilder wygenerowano il dla parametrów metody, ConstructorBuilder w których HasDefaultValue parametrów ustawiono na true.

Nowe zachowanie

Począwszy od platformy .NET 8 ConstructorBuilder i MethodBuilder wygeneruj il dla parametrów metody, w których HasDefaultValue parametr jest ustawiony na falsewartość , która jest oczekiwaną wartością.

Wprowadzona wersja

.NET 8 (wersja zapoznawcza 5)

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Poprzednie zachowanie było nieprawidłowe, ponieważ nie określono domyślnych wartości parametrów podczas definiowania metody lub konstruktora.

Jeśli używasz metody TypeBuilder.DefineConstructor lub TypeBuilder.DefineMethod, upewnij się, że użytkownicy metod wygenerowanych typów nie korzystają z ParameterInfo.HasDefaultValue właściwości .true

Dotyczy interfejsów API