CodeDelegate2.IsCodeType Propriété

Définition

Obtient une valeur indiquant si un objet CodeType peut être obtenu ou non à partir de ce délégué.

public:
 property bool IsCodeType { bool get(); };
public:
 property bool IsCodeType { bool get(); };
[System.Runtime.InteropServices.DispId(6)]
public bool IsCodeType { [System.Runtime.InteropServices.DispId(6)] [System.Runtime.InteropServices.TypeLibFunc(1024)] get; }
[<System.Runtime.InteropServices.DispId(6)>]
[<get: System.Runtime.InteropServices.DispId(6)>]
[<get: System.Runtime.InteropServices.TypeLibFunc(1024)>]
member this.IsCodeType : bool
Public ReadOnly Property IsCodeType As Boolean

Valeur de propriété

Boolean

Valeur booléenne qui est true si un objet CodeType peut être obtenu ; sinon retourne la valeur false.

Implémente

Attributs

Exemples

Avant d’exécuter cet exemple, chargez un projet avec une classe et insérez la ligne suivante avec l’exemple de code. Après avoir ajouté la ligne et l’exemple de code, cliquez sur la Delegate ligne pour y placer le point d’insertion, puis exécutez l’exemple.

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);  
    }  
}  

Remarques

IsCodeType retourne une valeur indiquant si le délégué est un type de code. Si c’est le cas, vous pouvez interroger l’interface ou effectuer un cast de celle-ci en un CodeType objet. Cela est vrai quand Kind est vsCMElementClass , vsCMElementInterface , vsCMElementDelegate , vsCMElementStruct ou vsCMElementEnum .

Notes

Les valeurs d'éléments de modèle de code, tels que des classes, des structures, des fonctions, des attributs, des délégués, etc., peuvent être non déterministes après certains types de modifications, ce qui signifie qu'il n'est pas certain que leurs valeurs resteront inchangées. Pour plus d’informations, consultez la section les valeurs d’élément de modèle de code peuvent changer dans la découverte de code à l’aide du modèle de code (Visual Basic).

S’applique à