polimorfismo polimorfico parametrico metodos herencia ejemplos clases clase abstracta c# superclass

polimorfico - C#: ¿cómo se obtiene una clase base de clase?



polimorfismo c# (7)

En C #, ¿cómo se obtiene una referencia a la clase base de una clase determinada?

Por ejemplo, supongamos que tiene una determinada clase, MyClass , y desea obtener una referencia a la superclase de MyClass .

Tengo en mente algo como esto:

Type superClass = MyClass.GetBase() ; // then, do something with superClass

Sin embargo, parece que no hay un método GetBase adecuado.


Esto obtendrá el tipo de base (si existe) y creará una instancia de este:

Type baseType = typeof(MyClass).BaseType; object o = null; if(baseType != null) { o = Activator.CreateInstance(baseType); }

Alternativamente, si no conoce el tipo en tiempo de compilación, use lo siguiente:

object myObject; Type baseType = myObject.GetType().BaseType; object o = null; if(baseType != null) { o = Activator.CreateInstance(baseType); }

Consulte documentation y Activator.CreateInstance en MSDN.


La propiedad documentation es lo que estás buscando.

Type superClass = typeof(MyClass).BaseType;


Use Reflection del tipo de la clase actual.

Type superClass = myClass.GetType().BaseType;



solo puedes usar base.


obj.base te dará una referencia al objeto padre de una instancia del objeto obj derivado.

typeof (obj) .BaseType le proporcionará una referencia al tipo del objeto padre a partir de una instancia del objeto obj derivado.


Type superClass = typeof(MyClass).BaseType;

Además, si no conoce el tipo de su objeto actual, puede obtener su tipo usando GetType y luego obtener el BaseType de ese tipo:

Type superClass = myObject.GetType().BaseType;

documentation