Partilhar via


Propriedade CodeElement.IsCodeType

Indica se ou não um objeto CodeType pode ser obtido no objeto CodeElement.

Namespace:  EnvDTE
Assembly:  EnvDTE (em EnvDTE. dll)

Sintaxe

ReadOnly Property IsCodeType As Boolean

Dim instance As CodeElement
Dim value As Boolean

value = instance.IsCodeType
bool IsCodeType { get; }
property bool IsCodeType {
    bool get ();
}
function get IsCodeType () : boolean

Valor da propriedade

Tipo: System.Boolean
Um valor Booleano indicando se ou não um objeto CodeType pode ser obtido no objeto CodeElement.

Comentários

True se um objeto CodeType pode ser obtido, caso contrário retorna False.Se for True, você pode consultar a interface ou lançá-lo para um objeto CodeType.Isso é Verdadeiro quando Kind é vsCMElementClass, vsCMElementInterface, vsCMElementDelegate, vsCMElementStructou vsCMElementEnum.

Observação:

Os valores de elementos de modelo de código, como classes, estruturas, funções, atributos, delegados e assim por diante podem ser não-determinístico depois de fazer determinados tipos de edições, significando que seus valores não podem ser confiam para sempre permanecer o mesmo.Para obter mais informações, consulte a seção que valores de elemento de modelo de código podem alterar em Descobrir o código usando o modelo de código (Visual Basic).

Exemplos

Sub IsCodeTypeExample(ByVal dte As DTE2)

    ' NOTE: This example requires a reference to the System.Text 
    '       namespace.

    ' Before running this example, open a code document from a project.
    Dim item As ProjectItem = dte.ActiveDocument.ProjectItem
    Dim sb As New StringBuilder

    RecurseElements(item.FileCodeModel.CodeElements, 0, sb)

    MsgBox(item.Name & " contains the following elements:" & vbCrLf & _
        vbCrLf & sb.ToString())

End Sub

Sub RecurseElements(ByVal elems As CodeElements, _
    ByVal level As Integer, ByVal sb As StringBuilder)

    Dim elem As CodeElement
    For Each elem In elems
        ' Add element to the list of names.
        sb.Append(" "c, level * 8)
        sb.Append(elem.Name & " [" & elem.Kind.ToString() & "]" & _
            vbCrLf)

        ' Call this function recursively if element has children.
        If elem.Kind = vsCMElement.vsCMElementNamespace Then
            RecurseElements(CType(elem, CodeNamespace).Members, _
                level + 1, sb)
        ElseIf elem.IsCodeType Then
            RecurseElements(CType(elem, CodeType).Members, _
                level + 1, sb)
        End If
    Next

End Sub
public void IsCodeTypeExample(DTE2 dte)
{
    // NOTE: This example requires a reference to the System.Text 
    //       namespace.

    // Before running this example, open a code document from a 
    // project.
    ProjectItem item = dte.ActiveDocument.ProjectItem;
    StringBuilder sb = new StringBuilder();

    RecurseElements(item.FileCodeModel.CodeElements, 0, sb);

    MessageBox.Show(item.Name + " contains the following elements:" + 
        Environment.NewLine + Environment.NewLine + sb.ToString());
}

void RecurseElements(CodeElements elems, int level, StringBuilder sb)
{
    foreach (CodeElement elem in elems)
    {
        // Add element to the list of names.
        sb.Append(' ', level * 8);
        sb.Append(elem.Name + " [" + elem.Kind.ToString() + "]" + 
            Environment.NewLine);

        // Call this function recursively if element has children.
        if (elem.Kind == vsCMElement.vsCMElementNamespace)
            RecurseElements(((CodeNamespace)elem).Members, 
                level + 1, sb);
        else if (elem.IsCodeType)
            RecurseElements(((CodeType)elem).Members, level + 1, sb);
    }
}

Permissões

Consulte também

Referência

CodeElement Interface

CodeElement Membros

Espaço para nome EnvDTE

Outros recursos

Como: Compilar e executar os exemplos de códigos automação modelo de objeto

Descobrir o código usando o modelo de código (Visual Basic)

Descobrir o código usando o modelo de código (Visual C#)