CodeDelegate2.Type Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft ein Objekt ab, das den programmatischen Typ des Delegaten darstellt, bzw. setzt dieses Objekt.
public:
property EnvDTE::CodeTypeRef ^ Type { EnvDTE::CodeTypeRef ^ get(); void set(EnvDTE::CodeTypeRef ^ value); };
public:
property EnvDTE::CodeTypeRef ^ Type { EnvDTE::CodeTypeRef ^ get(); void set(EnvDTE::CodeTypeRef ^ value); };
[System.Runtime.InteropServices.DispId(63)]
public EnvDTE.CodeTypeRef Type { [System.Runtime.InteropServices.DispId(63)] [System.Runtime.InteropServices.TypeLibFunc(1024)] get; [System.Runtime.InteropServices.DispId(63)] [System.Runtime.InteropServices.TypeLibFunc(1024)] set; }
[<System.Runtime.InteropServices.DispId(63)>]
[<get: System.Runtime.InteropServices.DispId(63)>]
[<get: System.Runtime.InteropServices.TypeLibFunc(1024)>]
[<set: System.Runtime.InteropServices.DispId(63)>]
[<set: System.Runtime.InteropServices.TypeLibFunc(1024)>]
member this.Type : EnvDTE.CodeTypeRef with get, set
Public Property Type As CodeTypeRef
Eigenschaftswert
Ein CodeTypeRef-Objekt.
Implementiert
- Attribute
Beispiele
Laden Sie vor dem Ausführen dieses Beispiels ein Projekt mit einer-Klasse, und fügen Sie die folgende Zeile zusammen mit dem Beispielcode ein. Nachdem die Zeile und der Beispielcode hinzugefügt wurden, klicken Sie auf die Delegate Zeile, um die Einfügemarke dort zu platzieren, und führen Sie dann das Beispiel aus.
VisualBasic
Delegate Sub MySubDelegate(ByVal x As Integer)
[C#]
public delegate void MySubDelegate(int x);
VisualBasic
Public Sub CodeDelegateExample(ByVal dte As DTE2)
' Before running this example, open a code document from a
' project and place the insertion point inside a class
' definition.
Try
' Retrieve the CodeClass at the insertion point.
Dim sel As TextSelection = _
CType(DTE.ActiveDocument.Selection, TextSelection)
Dim del As CodeDelegate2 = _
CType(sel.ActivePoint.CodeElement( _
vsCMElement.vsCMElementDelegate), CodeDelegate2)
Dim elem As CodeElement2
Dim sb As New System.Text.StringBuilder
' Display the baseclass name of the delegate.
sb.AppendLine("Delegate base class name: " & _
del.BaseClass.Name)
sb.AppendLine("Delegate's access: " & del.Access.ToString)
sb.AppendLine("Children: " & del.Children.Count & " _
Name: " & del.Children.Item(1).Name)
sb.AppendLine("Collection: " & del.Collection.Count)
sb.AppendLine("Delegates:")
For Each elem In del.Collection
sb.AppendLine(" - " & elem.Name)
Next
sb.AppendLine("Comment: " & del.Comment)
sb.AppendLine("Doc Comment: " & del.DocComment)
sb.AppendLine("DTE Parent: " & del.DTE.Name)
sb.AppendLine("Endpoint location: " & _
del.EndPoint.AbsoluteCharOffset)
sb.AppendLine("Infolocation: " & del.InfoLocation.ToString)
sb.AppendLine("Can provide CodeType object? " & _
del.IsCodeType.ToString)
sb.AppendLine("Is Delegate derived? " & _
del.IsDerivedFrom("EnvDTE80"))
sb.AppendLine("Is Delegate a generic? " & del.IsGeneric)
sb.AppendLine("Kind: " & del.Kind.ToString)
sb.AppendLine("Authoring language: " & _
del.Language.ToString)
sb.AppendLine("Name: " & del.Name)
sb.AppendLine("Namespace: " + del.Namespace.Name);
sb.AppendLine("Parameters: " & del.Parameters.Item(1).Name)
sb.AppendLine("Project containing the delegate: " & _
del.ProjectItem.Name)
sb.AppendLine("Prototype for delegate: " & del.Prototype)
sb.AppendLine("Delegate start point offset: " & _
del.StartPoint.LineCharOffset)
sb.AppendLine("Type: " & del.Type.TypeKind.ToString)
MsgBox(sb.ToString)
Catch ex As System.Exception
MsgBox(ex.ToString)
End Try
End Sub
[C#]
public void CodeDelegateExample(DTE2 DTE)
{
try
{
// Retrieve the CodeClass at the insertion point.
TextSelection sel = (TextSelection)
DTE.ActiveDocument.Selection;
CodeDelegate2 del = (CodeDelegate2)
sel.ActivePoint.get_CodeElement
(vsCMElement.vsCMElementDelegate);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
// Display the baseclass name of the delegate.
sb.AppendLine("Delegate base class name: " +
del.BaseClass.Name);
sb.AppendLine("Delegate's access: " + del.Access);
sb.AppendLine("Children: "+del.Children.Count+" Name:
"+del.Children.Item(1).Name);
sb.AppendLine("Collection: "+del.Collection.Count);
sb.AppendLine("Delegates:");
foreach (CodeElement2 elem in del.Collection )
{
sb.AppendLine(" - "+elem.Name);
}
sb.AppendLine("Comment: "+del.Comment);
sb.AppendLine("Attributes:");
foreach (CodeElement2 elem in del.Attributes)
{
sb.AppendLine(" - " + elem.Name);
}
sb.AppendLine("Bases:");
foreach (CodeElement2 elem in del.Bases)
{
sb.AppendLine(" - " + elem.Name);
}
sb.AppendLine("Doc Comment: " + del.DocComment);
sb.AppendLine("DTE Parent: "+del.DTE.Name);
sb.AppendLine("Endpoint location:
"+del.EndPoint.AbsoluteCharOffset);
sb.AppendLine("Infolocation: "+del.InfoLocation);
sb.AppendLine("Can provide CodeType object? "+del.IsCodeType);
sb.AppendLine("Is Delegate derived?
"+del.get_IsDerivedFrom("EnvDTE80"));
sb.AppendLine("Is Delegate a generic? "+del.IsGeneric);
sb.AppendLine("Kind: "+del.Kind);
sb.AppendLine("Authoring language: "+del.Language);
sb.AppendLine("Name: "+del.Name);
sb.AppendLine("Parameters: "+del.Parameters.Item(1).Name);
sb.AppendLine("Namespace: " + del.Namespace.Name);
sb.AppendLine("Project containing the delegate:
"+del.ProjectItem.Name);
sb.AppendLine("Delegate start point offset:
"+del.StartPoint.LineCharOffset);
sb.AppendLine("Type: "+del.Type.TypeKind);
MessageBox.Show(sb.ToString());
}
catch(System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Hinweise
Type kann Nothing oder null für Sprachen mit einem Standardtyp zurückgeben.
Hinweis
Die Werte von Codemodellelementen wie z. B. Klassen, Strukturen, Funktionen, Attributen Delegaten usw. sind nach bestimmten Änderungen unter Umständen nicht deterministisch, d. h. deren Werte bleiben nicht zuverlässig immer gleich. Weitere Informationen finden Sie im Abschnitt Code Modell Element-Werte können sich in ermitteln von Code mithilfe des Code Modells (Visual Basic)ändern.