Delen via


Methodebouwers genereren parameters met HasDefaultValue ingesteld op false

System.Reflection.Emit.ConstructorBuilder en System.Reflection.Emit.MethodBuilder genereer nu methodeparameters die, wanneer ze worden weergegeven, zijn ParameterInfo.HasDefaultValue ingesteld op false.

Vorig gedrag

ConstructorBuilder Eerder en MethodBuilder gegenereerd IL voor methodeparameters waarop de HasDefaultValue parameters zijn ingesteld op true.

Nieuw gedrag

Begin in .NET 8 ConstructorBuilder en MethodBuilder genereer IL voor methodeparameters waarop de HasDefaultValue parameters zijn ingesteld false. Dit is de verwachte waarde.

Versie geïntroduceerd

.NET 8 Preview 5

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Het vorige gedrag was onjuist, omdat er geen standaardparameterwaarden zijn opgegeven toen de methode of constructor werd gedefinieerd.

Als u deze gebruikt TypeBuilder.DefineConstructor ofTypeBuilder.DefineMethod, moet u ervoor zorgen dat gebruikers van de methoden van de gegenereerde typen niet afhankelijk zijn van de ParameterInfo.HasDefaultValue eigenschap.true

Betrokken API's