Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Type.IsSubclassOf (Type)

 

Determina si el Type actual se deriva del Type especificado.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)]
public virtual bool IsSubclassOf(
	Type c
)

Parámetros

c
Type: System.Type

Tipo que se va a comparar con el tipo actual.

Valor devuelto

Type: System.Boolean

Es true si el Type actual se quita de c; en caso contrario, es false. Este método también devuelve false si c y el Type actual son iguales.

Exception Condition
ArgumentNullException

El valor de c es null.

Puede llamar a la IsSubclassOf método para determinar ninguno de los siguientes:

  • Si una clase se deriva de otro.

  • Si un tipo se deriva de ValueType. Sin embargo, el IsValueType es una manera más eficaz para determinar si un tipo es un tipo de valor.

  • Si un tipo se deriva de Enum. Sin embargo, la IsEnum método es una forma más eficaz para determinar si un tipo es una enumeración.

  • Si un tipo es un delegado, es decir, si deriva desde Delegate o MulticastDelegate.

El IsSubclassOf no se puede usar el método para determinar si una interfaz se deriva de otra interfaz, o si una clase implementa una interfaz. Use laIsAssignableFrom método para ese propósito, como se muestra en el ejemplo siguiente.

using System;

public interface IInterface
{
   void Display();
}

public class Implementation : IInterface
{
   public void Display()
   {
      Console.WriteLine("The implementation...");
   }
}

public class Example
{
   public static void Main()
   {
      Console.WriteLine("Implementation is a subclass of IInterface:   {0}",
                        typeof(Implementation).IsSubclassOf(typeof(IInterface)));
      Console.WriteLine("IInterface is assignable from Implementation: {0}",
                        typeof(IInterface).IsAssignableFrom(typeof(Implementation)));
   }
}
// The example displays the following output:
//       Implementation is a subclass of IInterface:   False
//       IInterface is assignable from Implementation: True

Si la actual Type representa un parámetro de tipo en la definición de un tipo genérico o de método genérico, se deriva de su restricción de clase o de System.Object si no tiene ninguna restricción de clase.

System_CAPS_noteNota

Excepto cuando se usa con interfaces, IsSubclassOf es el elemento opuesto de IsAssignableFrom. Es decir, si t1.IsSubclassOf(t2) es true, a continuación, t2.IsAssignableFrom(t1) también es true.

Este método puede reemplazarse por una clase derivada.

En el ejemplo siguiente se crea una clase denominada Class1y una clase derivada denominada DerivedC1. Lo llama el IsSubclassOf método para mostrar que DerivedC1 es una subclase de Class1.

using System;

public class Class1 { }
public class DerivedC1 : Class1 { }

class IsSubclassTest
{
   public static void Main()
   {
      Console.WriteLine("DerivedC1 subclass of Class1: {0}",
                         typeof(DerivedC1).IsSubclassOf(typeof(Class1)));
   }
}
// The example displays the following output:
//        DerivedC1 subclass of Class1: True

.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: