次の方法で共有


メソッド ビルダーは、HasDefaultValue を false に設定してパラメーターを生成します

System.Reflection.Emit.ConstructorBuilderSystem.Reflection.Emit.MethodBuilder は、反映されると、 ParameterInfo.HasDefaultValuefalse に設定するメソッド パラメーターを生成するようになりました。

以前の動作

以前は、パラメーターの HasDefaultValuetrue に設定されているメソッド パラメーターに対して、 ConstructorBuilder および MethodBuilder が IL を生成しました。

新しい動作

.NET 8 以降では、パラメーターの HasDefaultValuefalse (予期される値) に設定されているメソッド パラメーターに対して、ConstructorBuilderMethodBuilder は IL を生成します。

導入されたバージョン

.NET 8 Preview 5

破壊的変更の種類

この変更は、動作変更です。

変更理由

メソッドまたはコンストラクターの定義時に既定のパラメーター値が指定されていないため、前の動作は正しくありません。

TypeBuilder.DefineConstructor または TypeBuilder.DefineMethodを使用する場合は、生成された型のメソッドのコンシューマーが、ParameterInfo.HasDefaultValueプロパティが true であることに依存していないことを確認します。

影響を受ける API