Freigeben über


CodeTypeDelegate-Klasse

Stellt eine Delegatdeklaration dar.

Namespace: System.CodeDom
Assembly: System (in system.dll)

Syntax

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
Public Class CodeTypeDelegate
    Inherits CodeTypeDeclaration
'Usage
Dim instance As CodeTypeDelegate
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class CodeTypeDelegate : CodeTypeDeclaration
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] 
public ref class CodeTypeDelegate : public CodeTypeDeclaration
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class CodeTypeDelegate extends CodeTypeDeclaration
SerializableAttribute 
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class CodeTypeDelegate extends CodeTypeDeclaration

Hinweise

Mit CodeTypeDelegate kann ein Delegattyp oder ein Ereignishandler deklariert werden. Ein Delegat definiert eine Methodensignatur, die von Rückrufmethoden und Ereignishandlern verwendet werden kann. Delegaten können auf der Namespaceebene deklariert oder in anderen Typen geschachtelt werden. Delegaten können nicht in anderen Delegaten geschachtelt werden.

Die ReturnType-Eigenschaft gibt den Datentyp des vom Delegaten zurückgegebenen Ereignishandlers an. Die Parameters-Eigenschaft enthält die Parameter für den Delegattyp.

CodeTypeDelegate darf nicht zum Deklarieren von Enumerationen, Schnittstellen oder Typen verwendet werden. Verwenden Sie dafür stattdessen CodeTypeDeclaration.

Hinweis

Nicht alle Sprachen unterstützen das Deklarieren von Delegaten. Rufen Sie die Supports-Methode mit dem DeclareDelegates-Flag auf, um zu bestimmen, ob eine bestimmten Sprache dafür Unterstützung gewährt.

Beispiel

Mit dem folgenden Beispielcode wird veranschaulicht, wie mit einem CodeTypeDelegate ein neuer Delegattyp deklariert wird.

' 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
// 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);
// Declares a delegate type called TestDelegate with an EventArgs parameter.
CodeTypeDelegate^ delegate1 = gcnew CodeTypeDelegate( "TestDelegate" );
delegate1->Parameters->Add( gcnew CodeParameterDeclarationExpression( "System.Object","sender" ) );
delegate1->Parameters->Add( gcnew 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);
// Declares a delegate type called TestDelegate with an 
// EventArgs parameter.
CodeTypeDelegate delegate1 = new CodeTypeDelegate("TestDelegate");
delegate1.get_Parameters().Add(new CodeParameterDeclarationExpression(
    "System.Object", "sender"));
delegate1.get_Parameters().Add(new CodeParameterDeclarationExpression(
    "System.EventArgs", "e"));
// A VJ# code generator produces the following source code for the 
// preceeding example code:
//  public delegate void TestDelegate(object sender, System.EventArgs e);

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

CodeTypeDelegate-Member
System.CodeDom-Namespace