Type.BaseType Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient le type dont le Type actuel hérite directement.
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
Valeur de propriété
Type dont le Type actuel hérite directement ou null
si le Type
actuel représente la classe Object ou une interface.
Implémente
Exemples
L’exemple suivant illustre l’utilisation de la BaseType propriété.
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
L’exemple suivant utilise la récursivité pour répertorier la hiérarchie d’héritage complète de chaque classe trouvée dans un assembly. L’exemple définit une classe nommée C
qui dérive d’une classe nommée qui, B
à son tour, dérive d’une classe nommée A
.
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
Remarques
Le type de base est le type à partir duquel le type actuel hérite directement. Object est le seul type qui n’a pas de type de base. par conséquent, null
est retourné en tant que type de base de Object .
Les interfaces héritent de zéro ou plusieurs interfaces de base ; par conséquent, cette propriété retourne null
si l' Type
objet représente une interface. Les interfaces de base peuvent être déterminées avec GetInterfaces ou FindInterfaces .
Si le actuel Type représente un type générique construit, le type de base reflète les arguments génériques. Observez, par exemple, les déclarations suivantes :
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
pour le type construit C<int>
( C(Of Integer)
en Visual Basic), la BaseType propriété retourne B<int>
.
Si le actuel Type représente un paramètre de type d’une définition de type générique, BaseType retourne la contrainte de classe, autrement dit, la classe que le paramètre de type doit hériter. S’il n’existe aucune contrainte de classe, BaseType retourne System.Object .
Cette propriété est en lecture seule.