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 false
wartość , 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.
Zalecana akcja
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