Partager via


Les générateurs de méthodes génèrent des paramètres avec HasDefaultValue défini sur false

System.Reflection.Emit.ConstructorBuilder et System.Reflection.Emit.MethodBuilder maintenant générer des paramètres de méthode qui, lorsqu’ils sont réfléchis, ont ParameterInfo.HasDefaultValue défini sur false.

Comportement précédent

Précédemment, ConstructorBuilder et MethodBuilder généré il pour les paramètres de méthode où les HasDefaultValue paramètres ont été définis truesur .

Nouveau comportement

À compter de .NET 8, ConstructorBuilder et MethodBuilder générez l’il pour les paramètres de méthode où les HasDefaultValue paramètres sont définis falsesur , qui est la valeur attendue.

Version introduite

.NET 8 Preview 5

Type de changement cassant

Ce changement est un changement de comportement.

Raison de la modification

Le comportement précédent était incorrect, car aucune valeur de paramètre par défaut n’a été spécifiée lorsque la méthode ou le constructeur a été défini.

Si vous utilisez TypeBuilder.DefineConstructor ou TypeBuilder.DefineMethod, assurez-vous que les consommateurs des méthodes des types générés ne s’appuient pas sur la ParameterInfo.HasDefaultValue propriété en cours true.

API affectées