CodeClass2.IsDerivedFrom[String] 属性

定义

获取一个值,该值指示代码类是否将另一个代码类作为基。

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

参数

FullName
String

必需。 要在此类型的沿袭中搜索的类型。

属性值

Boolean

一个布尔值, true 如果代码类将另一个代码类作为其基,则该值为; false 否则为。

实现

属性

示例

[Visual Basic]

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  

[C#]

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

注解

备注

在进行了某些类型的编辑之后,代码模型元素(例如类、结构、函数、特性、委托等)的值可能变为非确定性的,这意味着不能确定它们的值始终保持不变。 有关详细信息,请参阅 "代码模型元素值在 使用代码模型查找代码时 可能发生变化" (Visual Basic) "。

适用于