CodeElement.IsCodeType Propriedade

Definição

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

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

Valor da propriedade

Boolean

Um valor booliano que indica se um CodeType objeto pode ou não ser obtido do CodeElement objeto.

Atributos

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

Comentários

True se um CodeType objeto puder ser obtido, caso contrário retornará False . Se for True , você poderá consultar a interface ou convertê-la em um CodeType objeto. Isso é verdadeiro quando Kind é vsCMElementClass , vsCMElementInterface , vsCMElementDelegate , vsCMElementStruct ou vsCMElementEnum .

Observação

Os valores dos elementos de modelo de código, como classes, structs, funções, atributos, delegados e assim por diante, podem ser não determinísticos depois de fazer determinados tipos de edições, o que significa que seus valores não podem ser dependentes para sempre permanecerem os mesmos. Para obter mais informações, consulte os valores de elemento de modelo de código de seção podem ser alterados na descoberta de código usando o modelo de código (Visual Basic).

Aplica-se a