Delen via


Methodebouwers genereren parameters met HasDefaultValue ingesteld op false

System.Reflection.Emit.ConstructorBuilder en System.Reflection.Emit.MethodBuilder genereren nu methodeparameters die, wanneer erop gereflecteerd wordt, is ParameterInfo.HasDefaultValue ingesteld op false.

Vorig gedrag

Eerder genereerden ConstructorBuilder en MethodBuilder IL voor methodeparameters waarbij de HasDefaultValue van de parameters werd ingesteld op true.

Nieuw gedrag

Vanaf .NET 8 genereren ConstructorBuilder en MethodBuilder IL voor methodeparameters waarbij de HasDefaultValue van de parameters wordt ingesteld op false, de verwachte waarde.

Geïntroduceerde versie

.NET 8 Preview 5

Type van brekende verandering

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 TypeBuilder.DefineConstructor of TypeBuilder.DefineMethod gebruikt, moet u ervoor zorgen dat de gebruikers van de methoden van de gegenereerde typen niet afhankelijk zijn van de ParameterInfo.HasDefaultValue eigenschap die true is.

Betreffende API's