Type.BaseType Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém o tipo do qual a corrente Type herda diretamente.
public:
abstract property Type ^ BaseType { Type ^ get(); };
public abstract Type BaseType { get; }
member this.BaseType : Type
Public MustOverride ReadOnly Property BaseType As Type
Valor de Propriedade
De onde Type a corrente Type herda diretamente, ou null se a corrente Type representa a Object classe ou uma interface.
Implementações
Exemplos
O exemplo seguinte demonstra o uso da BaseType propriedade.
using System;
class TestType
{
public static void Main()
{
Type t = typeof(int);
Console.WriteLine("{0} inherits from {1}.", t,t.BaseType);
}
}
let t = typeof<int>
printfn $"{t} inherits from {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
O exemplo seguinte usa recursão para listar a hierarquia completa de herança de cada classe encontrada numa assembleia. O exemplo define uma classe nomeada C que deriva de uma classe chamada B, que, por sua vez, deriva de uma classe chamada 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
type A() = class end
type B() = inherit A()
type C() = inherit B()
module Example =
[<EntryPoint>]
let main _ =
for t in typeof<A>.Assembly.GetTypes() do
printfn $"{t.FullName} derived from: "
let mutable derived = t
while derived <> null do
derived <- derived.BaseType
if derived <> null then
printfn $" {derived.FullName}"
printfn ""
0
// 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
Observações
O tipo base é o tipo do qual o tipo atual herda diretamente.
Object é o único tipo que não tem um tipo base, portanto null é devolvido como o tipo base de Object.
As interfaces herdam de zero ou mais interfaces base; portanto, esta propriedade retorna null se o Type objeto representar uma interface. As interfaces base podem ser determinadas com GetInterfaces ou FindInterfaces.
Se a corrente Type representa um tipo genérico construído, o tipo base reflete os argumentos genéricos. Por exemplo, considere as seguintes declarações:
class B<U> { }
class C<T> : B<T> { }
type B<'U>() = class end
type C<'T>() = inherit B<'T>()
Class B(Of U)
End Class
Class C(Of T)
Inherits B(Of T)
End Class
Para o tipo construído C<int> (C(Of Integer) em Visual Basic), a propriedade BaseType devolve B<int>.
Se a corrente Type representa um parâmetro de tipo de uma definição genérica de tipo, BaseType devolve a restrição de classe, ou seja, a classe que o parâmetro de tipo deve herdar. Se não houver restrição de classe, BaseType devolve System.Object.
Esta propriedade é somente leitura.