次の方法で共有


MethodBuilder.SetImplementationFlags メソッド

このメソッドの実装フラグを設定します。

Public Sub SetImplementationFlags( _
   ByVal attributes As MethodImplAttributes _)
[C#]
public void SetImplementationFlags(MethodImplAttributesattributes);
[C++]
public: void SetImplementationFlags(MethodImplAttributesattributes);
[JScript]
public function SetImplementationFlags(
   attributes : MethodImplAttributes);

パラメータ

  • attributes
    設定する実装フラグ。

例外

例外の種類 条件
InvalidOperationException 外側の型が CreateType を使用して作成されています。

使用例

[Visual Basic, C#, C++] SetImplementationFlags メソッドを使用して、メソッド本体の MSIL の実装について指定する方法については、次のコード例を参照してください。

 
Dim myMthdBuilder As MethodBuilder = myTypeBuilder.DefineMethod("MyMethod", _
                 MethodAttributes.Public, _
                 CallingConventions.HasThis, _
                 GetType(Integer), _
                 New Type() {GetType(Integer), GetType(Integer)})

' Specifies that the dynamic method declared above has a an MSIL implementation,
' is managed, synchronized (single-threaded) through the body, and that it 
' cannot be inlined.

myMthdBuilder.SetImplementationFlags((MethodImplAttributes.IL Or _
                  MethodImplAttributes.Managed Or _
                  MethodImplAttributes.Synchronized Or _
                  MethodImplAttributes.NoInlining))

' Create an ILGenerator for the MethodBuilder and emit MSIL here ...

[C#] 
MethodBuilder myMthdBuilder = myTypeBuilder.DefineMethod("MyMethod",
                    MethodAttributes.Public,
                    CallingConventions.HasThis,
                    typeof(int),
                    new Type[] { typeof(int),
                             typeof(int) });    

// Specifies that the dynamic method declared above has a an MSIL implementation,
    // is managed, synchronized (single-threaded) through the body, and that it 
// cannot be inlined.
 
myMthdBuilder.SetImplementationFlags(MethodImplAttributes.IL |
                     MethodImplAttributes.Managed |
                     MethodImplAttributes.Synchronized |
                     MethodImplAttributes.NoInlining);

// Create an ILGenerator for the MethodBuilder and emit MSIL here ...


[C++] 
Type* temp0 [] = {__typeof(int), __typeof(int)};
MethodBuilder*  myMthdBuilder = myTypeBuilder->DefineMethod(
   S"MyMethod",
   MethodAttributes::Public,
   CallingConventions::HasThis,
   __typeof(int),
   temp0);

// Specifies that the dynamic method declared above has a an MSIL implementation,
// is managed, synchronized (single-threaded) through the body, and that it
// cannot be inlined.

myMthdBuilder->SetImplementationFlags(
   static_cast<MethodImplAttributes>(MethodImplAttributes::IL |
   MethodImplAttributes::Managed |
   MethodImplAttributes::Synchronized |
   MethodImplAttributes::NoInlining));

// Create an ILGenerator for the MethodBuilder and emit MSIL here ...

[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 ファミリ

参照

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