次の方法で共有


PropertyBuilder.SetSetMethod メソッド

プロパティ値を設定するメソッドを設定します。

Public Sub SetSetMethod( _
   ByVal mdBuilder As MethodBuilder _)
[C#]
public void SetSetMethod(MethodBuildermdBuilder);
[C++]
public: void SetSetMethod(MethodBuilder* mdBuilder);
[JScript]
public function SetSetMethod(
   mdBuilder : MethodBuilder);

パラメータ

  • mdBuilder
    プロパティ値を設定するメソッドを表す MethodBuilder オブジェクト。

例外

例外の種類 条件
ArgumentNullException mdBuilder が null 参照 (Visual Basic では Nothing) です。
InvalidOperationException CreateType が、外側の型に対して呼び出されました。

使用例

[Visual Basic, C#, C++] 次のコード例は、 SetSetMethod を使用して、 PropertyBuilder で作成した set プロパティを動的なメソッドに結び付ける方法を示しています。

 
' Define the set_Greeting method.
Dim methodArgs As Type() = {GetType(String)}
Dim setGreetingMethod As MethodBuilder = helloWorldTypeBuilder.DefineMethod _
      ("set_Greeting", MethodAttributes.Public Or MethodAttributes.HideBySig Or _
                              MethodAttributes.SpecialName, Nothing, methodArgs)

' Generate IL code for set_Greeting method.
methodIL = setGreetingMethod.GetILGenerator()
methodIL.Emit(OpCodes.Ldarg_0)
methodIL.Emit(OpCodes.Ldarg_1)
methodIL.Emit(OpCodes.Stfld, greetingFieldBuilder)
methodIL.Emit(OpCodes.Ret)
greetingPropertyBuilder.SetSetMethod(setGreetingMethod)

[C#] 
// Define the set_Greeting method.
Type[] methodArgs = {typeof(string)};
MethodBuilder setGreetingMethod = helloWorldTypeBuilder.DefineMethod("set_Greeting",
   MethodAttributes.Public|MethodAttributes.HideBySig|MethodAttributes.SpecialName,
   typeof(void), methodArgs);
// Generate IL code for set_Greeting method.
methodIL = setGreetingMethod.GetILGenerator();
methodIL.Emit(OpCodes.Ldarg_0);
methodIL.Emit(OpCodes.Ldarg_1);
methodIL.Emit(OpCodes.Stfld,greetingFieldBuilder);
methodIL.Emit(OpCodes.Ret);
greetingPropertyBuilder.SetSetMethod(setGreetingMethod);

[C++] 
// Define the set_Greeting method.
Type* methodArgs[] = {__typeof(String)};
MethodBuilder* setGreetingMethod = helloWorldTypeBuilder->DefineMethod(
   S"set_Greeting",
   static_cast<MethodAttributes>(MethodAttributes::Public
                                |MethodAttributes::HideBySig
                                |MethodAttributes::SpecialName),
   __typeof(void),
   methodArgs);
// Generate IL code for set_Greeting method.
methodIL = setGreetingMethod->GetILGenerator();
methodIL->Emit(OpCodes::Ldarg_0);
methodIL->Emit(OpCodes::Ldarg_1);
methodIL->Emit(OpCodes::Stfld,greetingFieldBuilder);
methodIL->Emit(OpCodes::Ret);
greetingPropertyBuilder->SetSetMethod(setGreetingMethod);

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

PropertyBuilder クラス | PropertyBuilder メンバ | System.Reflection.Emit 名前空間