プロパティ値を設定するメソッドを設定します。
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 名前空間