Tvůrci metod generují parametry s hodnotou HasDefaultValue nastavenou na false
System.Reflection.Emit.ConstructorBuilder a System.Reflection.Emit.MethodBuilder nyní vygenerujte parametry metody, které se při odrazu nastavily ParameterInfo.HasDefaultValue na false
hodnotu .
Předchozí chování
Dříve a MethodBuilder vygeneroval IL pro parametry metody, ConstructorBuilder kde HasDefaultValue byly parametry nastaveny na true
.
Nové chování
Počínaje rozhraním .NET 8 a MethodBuilder vygenerujte IL pro parametry metody, ConstructorBuilder kde HasDefaultValue jsou parametry nastaveny na false
, což je očekávaná hodnota.
Zavedená verze
.NET 8 Preview 5
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Předchozí chování bylo nesprávné, protože při definování metody nebo konstruktoru nebyly zadány žádné výchozí hodnoty parametrů.
Doporučená akce
Pokud používáte TypeBuilder.DefineConstructor nebo TypeBuilder.DefineMethod, ujistěte se, že spotřebitelé generovaných typů metody nespoléhají na ParameterInfo.HasDefaultValue vlastnost je true
.
Ovlivněná rozhraní API
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro