次の方法で共有


CodeTypeDelegate クラス

デリゲート宣言を表します。

この型のすべてのメンバの一覧については、CodeTypeDelegate メンバ を参照してください。

System.Object
   System.CodeDom.CodeObject
      System.CodeDom.CodeTypeMember
         System.CodeDom.CodeTypeDeclaration
            System.CodeDom.CodeTypeDelegate

<Serializable>
<ClassInterface(ClassInterfaceType.AutoDispatch)>
<ComVisible(True)>
Public Class CodeTypeDelegate   Inherits CodeTypeDeclaration
[C#]
[Serializable]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
[ComVisible(true)]
public class CodeTypeDelegate : CodeTypeDeclaration
[C++]
[Serializable]
[ClassInterface(ClassInterfaceType::AutoDispatch)]
[ComVisible(true)]
public __gc class CodeTypeDelegate : public CodeTypeDeclaration
[JScript]
public
   Serializable
 ClassInterface(ClassInterfaceType.AutoDispatch)
 ComVisible(true)
class CodeTypeDelegate extends CodeTypeDeclaration

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

CodeTypeDelegate を使用して、デリゲート型またはイベント ハンドラを宣言できます。デリゲートは、コールバック メソッドまたはイベント ハンドラで使用できるメソッド シグネチャを定義します。デリゲートは、名前空間のレベルで宣言するか、または、他の型内で入れ子にすることができます。デリゲートを他のデリゲート内で入れ子にすることはできません。

ReturnType プロパティは、デリゲートによって返されるイベント ハンドラのデータ型を指定します。 Parameters プロパティは、デリゲート型のパラメータを格納します。

CodeTypeDelegate は、列挙体、インターフェイス、および型宣言には使用しないでください。列挙体、インターフェイス、および型宣言には、その代わりに CodeTypeDeclaration を使用してください。

メモ   デリゲートの宣言は、すべての言語でサポートされているわけではありません。特定の言語でデリゲートの宣言がサポートされているかどうかを調べるには、 DeclareDelegates フラグを指定して Supports メソッドを呼び出します。

使用例

[Visual Basic, C#, C++] CodeTypeDelegate を使用して、新しいデリゲート型を宣言する方法については、次のコード例を参照してください。

 
' Declares a delegate type called TestDelegate with an EventArgs parameter.
Dim delegate1 As New CodeTypeDelegate("TestDelegate")
delegate1.Parameters.Add(New CodeParameterDeclarationExpression("System.Object", "sender"))
delegate1.Parameters.Add(New CodeParameterDeclarationExpression("System.EventArgs", "e"))

' A Visual Basic code generator produces the following source code for the preceeding example code:

'        Public Delegate Sub TestDelegate(ByVal sender As Object, ByVal e As System.EventArgs)
'        End Class

[C#] 
// Declares a delegate type called TestDelegate with an EventArgs parameter.
CodeTypeDelegate delegate1 = new CodeTypeDelegate("TestDelegate");            
delegate1.Parameters.Add( new CodeParameterDeclarationExpression("System.Object", "sender") );
delegate1.Parameters.Add( new CodeParameterDeclarationExpression("System.EventArgs", "e") );        

// A C# code generator produces the following source code for the preceeding example code:

//     public delegate void TestDelegate(object sender, System.EventArgs e);

[C++] 
// Declares a delegate type called TestDelegate with an EventArgs parameter.
CodeTypeDelegate* delegate1 = new CodeTypeDelegate(S"TestDelegate");            
delegate1->Parameters->Add( new CodeParameterDeclarationExpression(S"System.Object", S"sender") );
delegate1->Parameters->Add( new CodeParameterDeclarationExpression(S"System.EventArgs", S"e") );        

// A C# code generator produces the following source code for the preceeding example code:

//     public delegate void TestDelegate(object sender, System.EventArgs e);

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

必要条件

名前空間: System.CodeDom

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

アセンブリ: System (System.dll 内)

参照

CodeTypeDelegate メンバ | System.CodeDom 名前空間