ejemplo de código tomado de MSDN¿por qué Object.GetType() no es virtual?
public class Test {
public static void Main() {
MyBaseClass myBase = new MyBaseClass();
MyDerivedClass myDerived = new MyDerivedClass();
object o = myDerived;
MyBaseClass b = myDerived;
Console.WriteLine("mybase: Type is {0}", myBase.GetType());
Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType()); }}
/*
This code produces the following output.
mybase: Type is MyBaseClass
myDerived: Type is MyDerivedClass
object o = myDerived: Type is MyDerivedClass
MyBaseClass b = myDerived: Type is MyDerivedClass
*/
Por lo tanto sería lógico hacer GetType() virtual en menos funciona como virtual? ¿Alguien puede explicar eso? Y otra pregunta ¿Hay algún otro método en el marco NET que tenga un comportamiento similar a GetType?
y razonablemente de manera! –
sí. tienes razón. pero puede sobrecargar este método público en la clase derivada)) – Arseny
@Arseny: Entonces no es lo mismo que GetType() como se define en el tipo de objeto. –