CodeClass.IsDerivedFrom[String] Property

Definition

Returns whether a CodeClass object has another object as a base.

public:
 property bool IsDerivedFrom[System::String ^] { bool get(System::String ^ FullName); };
[System.Runtime.InteropServices.DispId(43)]
public bool IsDerivedFrom[string FullName] { [System.Runtime.InteropServices.DispId(43)] get; }
[<System.Runtime.InteropServices.DispId(43)>]
[<get: System.Runtime.InteropServices.DispId(43)>]
member this.IsDerivedFrom(string) : bool
Public ReadOnly Property IsDerivedFrom(FullName As String) As Boolean

Parameters

FullName
String

Required. The type to search for in the lineage of this type.

Property Value

A Boolean value indicating true if a CodeClass object has another object as a base; false if otherwise.

Attributes

Examples

 Sub IsDerivedFromExample(ByVal dte As DTE2)  

    ' Before running this example, open a code document from a project.  
    Try  
        Dim projItem As ProjectItem = dte.ActiveDocument.ProjectItem  
        Dim cm As CodeModel = projItem.ContainingProject.CodeModel  

        ' Create a new class.  
        Dim cls1 As CodeClass = cm.AddClass("BaseClass", projItem.Name)  

        ' Derive a class from the newly created class.  
        Dim bases() As Object = {cls1.FullName}  
        Dim cls2 As CodeClass = cm.AddClass("DerivedClass", _  
            projItem.Name, -1, bases)  

        Dim derived As String  
        If cls1.IsDerivedFrom(cls2.FullName) Then  
            derived &= cls1.Name & " is derived from " & _  
                cls2.Name & vbCrLf  
        Else  
            derived &= cls1.Name & " is not derived from " & _  
                cls2.Name & vbCrLf  
        End If  

        If cls2.IsDerivedFrom(cls1.FullName) Then  
            derived &= cls2.Name & " is derived from " & _  
                cls1.Name & vbCrLf  
        Else  
            derived &= cls2.Name & " is not derived from " & _  
                cls1.Name & vbCrLf  
        End If  

        MsgBox(derived)  
    Catch ex As Exception  
        MsgBox(ex.Message)  
    End Try  

End Sub  
public void IsDerivedFromExample(DTE2 dte)  
{  
    // Before running this example, open a code document from   
    // a project.  
    try  
    {  
        ProjectItem projItem = dte.ActiveDocument.ProjectItem;  
        CodeModel cm = projItem.ContainingProject.CodeModel;  

        // Create a new class.  
        CodeClass cls1 = cm.AddClass("BaseClass", projItem.Name, -1,   
            null, null, vsCMAccess.vsCMAccessPublic);  

        // Derive a class from the newly created class.  
        object[] bases = {cls1.FullName};  
        CodeClass cls2 = cm.AddClass("DerivedClass", projItem.Name, -1,   
            bases, null, vsCMAccess.vsCMAccessPublic);  
        string derived = "";  

        if (cls1.IsDerivedFrom(cls2.FullName))  
            derived += cls1.Name + " is derived from " +   
                cls2.Name + "\n";  
        else  
            derived += cls1.Name + " is not derived from " +   
                cls2.Name + "\n";  

        if (cls2.IsDerivedFrom(cls1.FullName))  
            derived += cls2.Name + " is derived from " +   
                cls1.Name + "\n";  
        else  
            derived += cls2.Name + " is not derived from " +   
                cls1.Name + "\n";  

        MessageBox.Show(derived);  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

Remarks

Note

The values of code model elements such as classes, structs, functions, attributes, delegates, and so forth can be non-deterministic after making certain kinds of edits, meaning that their values cannot be relied upon to always remain the same. For more information, see the section Code Model Element Values Can Change in Discovering Code by Using the Code Model (Visual Basic).

Applies to