Freigeben über


CodeDelegateCreateExpression-Klasse

Stellt einen Ausdruck dar, der einen Delegaten erstellt.

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

Syntax

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

Hinweise

CodeDelegateCreateExpression stellt Code dar, der einen Delegaten erstellt. CodeDelegateCreateExpression wird häufig mit CodeAttachEventStatement oder CodeRemoveEventStatement verwendet, um einen Ereignishandler darzustellen, der an ein Ereignis angefügt oder aus diesem entfernt werden soll.

Die DelegateType-Eigenschaft gibt den Typ des zu erstellenden Delegaten an. Die TargetObject-Eigenschaft gibt das Objekt an, das die Ereignishandlermethode enthält. Die MethodName-Eigenschaft gibt den Namen der Ereignishandlermethode an, deren Methodensignatur mit der Methodensignatur des Delegaten übereinstimmt.

In C# besitzt ein Delegaterstellungsausdruck normalerweise folgende Form: new EventHandler(this.HandleEventMethod). In Visual Basic besitzt ein Delegaterstellungsausdruck normalerweise folgende Form: AddressOf Me.HandleEventMethod.

Beispiel

Im folgenden Codebeispiel wird mithilfe einer CodeDelegateCreateExpression ein Delegat erzeugt.

' Defines a delegate creation expression that creates an EventHandler delegate pointing to TestMethod.
Dim createDelegate1 As New CodeDelegateCreateExpression(New CodeTypeReference("System.EventHandler"), New CodeThisReferenceExpression(), "TestMethod")

' Attaches an EventHandler delegate pointing to TestMethod to the TestEvent event.
Dim attachStatement1 As New CodeAttachEventStatement(New CodeThisReferenceExpression(), "TestEvent", createDelegate1)

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

'     AddHandler TestEvent, AddressOf Me.TestMethod
// Defines a delegate creation expression that creates an EventHandler delegate pointing to a method named TestMethod.
CodeDelegateCreateExpression createDelegate1 = new CodeDelegateCreateExpression( 
new CodeTypeReference( "System.EventHandler" ), new CodeThisReferenceExpression(), "TestMethod" );                                
// Attaches an EventHandler delegate pointing to TestMethod to the TestEvent event.
CodeAttachEventStatement attachStatement1 = new CodeAttachEventStatement( new CodeThisReferenceExpression(), "TestEvent", createDelegate1 );

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

//     this.TestEvent += new System.EventHandler(this.TestMethod);
// Defines a delegate creation expression that creates an EventHandler delegate pointing to a method named TestMethod.
CodeDelegateCreateExpression^ createDelegate1 = gcnew CodeDelegateCreateExpression( gcnew CodeTypeReference( "System.EventHandler" ),gcnew CodeThisReferenceExpression,"TestMethod" );

// Attaches an EventHandler delegate pointing to TestMethod to the TestEvent event.
CodeAttachEventStatement^ attachStatement1 = gcnew CodeAttachEventStatement( gcnew CodeThisReferenceExpression,"TestEvent",createDelegate1 );

// A C# code generator produces the following source code for the preceeding example code:
//     this.TestEvent += new System.EventHandler(this.TestMethod);
// Defines a delegate creation expression that creates an EventHandler
// delegate pointing to a method named TestMethod.
CodeDelegateCreateExpression createDelegate1 = new 
    CodeDelegateCreateExpression(new CodeTypeReference
    ("System.EventHandler"), new CodeThisReferenceExpression(),
    "TestMethod");
// Attaches an EventHandler delegate pointing to TestMethod to the
// TestEvent event.
CodeAttachEventStatement attachStatement1 = new 
    CodeAttachEventStatement(new CodeThisReferenceExpression(),
    "TestEvent", createDelegate1);
// A VJ# code generator produces the following source code for the 
// preceeding example code:
// this.add_TestEvent(new System.EventHandler(this.TestMethod));

Vererbungshierarchie

System.Object
   System.CodeDom.CodeObject
     System.CodeDom.CodeExpression
      System.CodeDom.CodeDelegateCreateExpression

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

CodeDelegateCreateExpression-Member
System.CodeDom-Namespace