Type.IsInstanceOfType(Object) Método
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Determina si el objeto especificado es una instancia del objeto Type actual.
public:
virtual bool IsInstanceOfType(System::Object ^ o);
public virtual bool IsInstanceOfType(object? o);
public virtual bool IsInstanceOfType(object o);
abstract member IsInstanceOfType : obj -> bool
override this.IsInstanceOfType : obj -> bool
Public Overridable Function IsInstanceOfType (o As Object) As Boolean
- o
- Object
Objeto que se va a comparar con el tipo actual.
Es true
si el objeto Type
actual se encuentra en la jerarquía de herencia del objeto representado por o
, o si el objeto Type
actual es una interfaz que implementa o
.
false
si no se cumple ninguna de estas condiciones, o si o
es null
, o si el objeto Type
actual es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true
).
En el siguiente ejemplo se muestra el uso del método IsInstanceOfType
.
using namespace System;
public interface class IExample{};
public ref class BaseClass: IExample{};
public ref class DerivedClass: BaseClass{};
void main()
{
Type^ interfaceType = IExample::typeid;
BaseClass^ base1 = gcnew BaseClass;
Type^ base1Type = base1->GetType();
BaseClass^ derived1 = gcnew DerivedClass;
Type^ derived1Type = derived1->GetType();
array<Int32>^ arr = gcnew array<Int32>(11);
Type^ arrayType = Array::typeid;
Console::WriteLine("Is Int32[] an instance of the Array class? {0}.",
arrayType->IsInstanceOfType( arr ) );
Console::WriteLine("Is myclass an instance of BaseClass? {0}.",
base1Type->IsInstanceOfType( base1 ) );
Console::WriteLine("Is myderivedclass an instance of BaseClass? {0}.",
base1Type->IsInstanceOfType( derived1 ) );
Console::WriteLine("Is myclass an instance of IExample? {0}.",
interfaceType->IsInstanceOfType( base1 ) );
Console::WriteLine("Is myderivedclass an instance of IExample? {0}.",
interfaceType->IsInstanceOfType( derived1 ) );
}
// The example displays the following output:
// Is int[] an instance of the Array class? True.
// Is base1 an instance of BaseClass? True.
// Is derived1 an instance of BaseClass? True.
// Is base1 an instance of IExample? True.
// Is derived1 an instance of IExample? True.
using System;
public interface IExample {}
public class BaseClass : IExample {}
public class DerivedClass : BaseClass {}
public class Example
{
public static void Main()
{
var interfaceType = typeof(IExample);
var base1 = new BaseClass();
var base1Type = base1.GetType();
var derived1 = new DerivedClass();
var derived1Type = derived1.GetType();
int[] arr = new int[11];
Console.WriteLine("Is int[] an instance of the Array class? {0}.",
typeof(Array).IsInstanceOfType(arr));
Console.WriteLine("Is base1 an instance of BaseClass? {0}.",
base1Type.IsInstanceOfType(base1));
Console.WriteLine("Is derived1 an instance of BaseClass? {0}.",
base1Type.IsInstanceOfType(derived1));
Console.WriteLine("Is base1 an instance of IExample? {0}.",
interfaceType.IsInstanceOfType(base1));
Console.WriteLine("Is derived1 an instance of IExample? {0}.",
interfaceType.IsInstanceOfType(derived1));
}
}
// The example displays the following output:
// Is int[] an instance of the Array class? True.
// Is base1 an instance of BaseClass? True.
// Is derived1 an instance of BaseClass? True.
// Is base1 an instance of IExample? True.
// Is derived1 an instance of IExample? True.
open System
type IExample = interface end
type BaseClass() = interface IExample
type DerivedClass() = inherit BaseClass()
let interfaceType = typeof<IExample>
let base1 = BaseClass()
let base1Type = base1.GetType()
let derived1 = DerivedClass()
let derived1Type = derived1.GetType()
let arr = Array.zeroCreate<int> 11
printfn $"Is int[] an instance of the Array class? {typeof<Array>.IsInstanceOfType arr}."
printfn $"Is base1 an instance of BaseClass? {base1Type.IsInstanceOfType base1}."
printfn $"Is derived1 an instance of BaseClass? {base1Type.IsInstanceOfType derived1}."
printfn $"Is base1 an instance of IExample? {interfaceType.IsInstanceOfType base1}."
printfn $"Is derived1 an instance of IExample? {interfaceType.IsInstanceOfType derived1}."
// The example displays the following output:
// Is int[] an instance of the Array class? True.
// Is base1 an instance of BaseClass? True.
// Is derived1 an instance of BaseClass? True.
// Is base1 an instance of IExample? True.
// Is derived1 an instance of IExample? True.
Public Interface IExample
End Interface
Public Class BaseClass : Implements IExample
End Class
Public Class DerivedClass : Inherits BaseClass
End Class
Public Module Example
Public Sub Main()
Dim interfaceType As Type = GetType(IExample)
Dim base1 As New BaseClass()
Dim base1Type As Type = base1.GetType()
Dim derived1 = New DerivedClass()
Dim derived1Type As Type = derived1.GetType()
Dim arr(10) As Integer
Console.WriteLine("Is int[] an instance of the Array class? {0}.",
GetType(Array).IsInstanceOfType(arr))
Console.WriteLine("Is base1 an instance of BaseClass? {0}.",
base1Type.IsInstanceOfType(base1))
Console.WriteLine("Is derived1 an instance of BaseClass? {0}.",
base1Type.IsInstanceOfType(derived1))
Console.WriteLine("Is base1 an instance of IExample? {0}.",
interfaceType.IsInstanceOfType(base1))
Console.WriteLine("Is derived1 an instance of IExample? {0}.",
interfaceType.IsInstanceOfType(derived1))
End Sub
End Module
' The example displays the following output:
' Is int[] an instance of the Array class? True.
' Is base1 an instance of BaseClass? True.
' Is derived1 an instance of BaseClass? True.
' Is base1 an instance of IExample? True.
' Is derived1 an instance of IExample? True.
Este método se puede invalidar mediante una clase derivada.
Nota
Un tipo construido no es una instancia de su definición de tipo genérico. Es decir, MyGenericList<int>
(MyGenericList(Of Integer)
en Visual Basic) no es una instancia de MyGenericList<T>
(MyGenericList(Of T)
en Visual Basic).
Producto | Versiones |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: