Type.BaseType Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den Typ ab, von dem der aktuelle Type direkt vererbt wird.
public:
abstract property Type ^ BaseType { Type ^ get(); };
public abstract Type? BaseType { get; }
public abstract Type BaseType { get; }
member this.BaseType : Type
Public MustOverride ReadOnly Property BaseType As Type
Eigenschaftswert
Der Type, von dem der aktuelle Type direkt erbt, oder null, wenn der aktuelle Type die Object-Klasse oder eine Schnittstelle darstellt.
Implementiert
Beispiele
Im folgenden Beispiel wird die Verwendung der -Eigenschaft BaseType veranschaulicht.
using namespace System;
void main()
{
Type^ t = int::typeid;
Console::WriteLine( "{0} inherits from {1}.", t, t->BaseType );
}
using System;
class TestType
{
public static void Main()
{
Type t = typeof(int);
Console.WriteLine("{0} inherits from {1}.", t,t.BaseType);
}
}
Class TestType
Public Shared Sub Main()
Dim t As Type = GetType(Integer)
Console.WriteLine("{0} inherits from {1}.", t, t.BaseType)
End Sub
End Class
Im folgenden Beispiel wird recursion verwendet, um die vollständige Vererbungshierarchie jeder Klasse in einer Assembly auflisten zu können. Im Beispiel wird eine Klasse mit dem Namen definiert, die von einer Klasse namens ableitungt, die wiederum von einer Klasse mit dem Namen C B A ableitung.
using System;
public class Example
{
public static void Main()
{
foreach (var t in typeof(Example).Assembly.GetTypes()) {
Console.WriteLine("{0} derived from: ", t.FullName);
var derived = t;
do {
derived = derived.BaseType;
if (derived != null)
Console.WriteLine(" {0}", derived.FullName);
} while (derived != null);
Console.WriteLine();
}
}
}
public class A {}
public class B : A
{}
public class C : B
{}
// The example displays the following output:
// Example derived from:
// System.Object
//
// A derived from:
// System.Object
//
// B derived from:
// A
// System.Object
//
// C derived from:
// B
// A
// System.Object
Public Class Example
Public Shared Sub Main()
For Each t In GetType(Example).Assembly.GetTypes()
Console.WriteLine("{0} derived from: ", t.FullName)
Dim derived As Type = t
Do
derived = derived.BaseType
If derived IsNot Nothing Then
Console.WriteLine(" {0}", derived.FullName)
End If
Loop While derived IsNot Nothing
Console.WriteLine()
Next
End Sub
End Class
Public Class A
End Class
Public Class B : Inherits A
End Class
Public Class C : Inherits B
End Class
' The example displays the following output:
' Example derived from:
' System.Object
'
' A derived from:
' System.Object
'
' B derived from:
' A
' System.Object
'
' C derived from:
' B
' A
' System.Object
Hinweise
Der Basistyp ist der Typ, von dem der aktuelle Typ direkt erbt. Object ist der einzige Typ, der keinen Basistyp hat, daher null wird als Basistyp von Object zurückgegeben.
Schnittstellen erben von null oder mehr Basisschnittstellen. daher gibt diese Eigenschaft null zurück, wenn Type das -Objekt eine Schnittstelle darstellt. Die Basisschnittstellen können mit oder GetInterfaces bestimmt FindInterfaces werden.
Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, spiegelt der Basistyp die generischen Argumente wider. Betrachten Sie beispielsweise die folgenden Deklarationen:
generic<typename U> ref class B { };
generic<typename T> ref class C : B<T> { };
class B<U> { }
class C<T> : B<T> { }
Class B(Of U)
End Class
Class C(Of T)
Inherits B(Of T)
End Class
Für den konstruierten Typ C<int> ( C(Of Integer) in Visual Basic) gibt die BaseType -Eigenschaft B<int> zurück.
If the current Type represents a type parameter of a generic type definition, BaseType returns the class constraint, that is, the class the type parameter must inherit. Wenn keine Klasseneinschränkung vorkommt, gibt BaseType System.Object zurück.
Diese Eigenschaft ist schreibgeschützt.