codice di esempio tratto da MSDNperché Object.GetType() non è virtuale?
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
*/
Quindi sarebbe logico fare GetType() virtuale almeno funziona come virtuale? Qualcuno può spiegarlo? E altra domanda C'è qualche altro metodo nel framework NET che abbia un comportamento simile a GetType?
e ragionevolmente così! –
si. hai ragione. ma potresti sovraccaricare questo metodo pubblico nella classe derivata)) – Arseny
@Arseny: Quindi non è uguale a GetType() come definito nel tipo di oggetto. –