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èrent 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éraient IL pour les paramètres de méthode où HasDefaultValue des paramètres a été défini sur true.

Nouveau comportement

À compter de .NET 8, ConstructorBuilder et MethodBuilder génèrent IL pour les paramètres de méthode où HasDefaultValue des paramètres est défini sur false, qui est la valeur attendue.

Version introduite

.NET 8 Preview 5

Type de changement cassant

Ce changement est un changement de comportement.

Raison du changement

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

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 propriété ParameterInfo.HasDefaultValue étant true.

API affectées