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 名前空間