Witam serdecznie. Nie potrafię tego rozbić na czynniki pierwsze. Napotkałem to podczas pisania aplikacji (oszczędziło mi to sporo kłopotów, że to tak działa, tylko dlaczego?)
string text = "abc";
object o1 = text;
object o2 = o1;
MessageBox.Show(o2.GetType().ToString());
**text **jest typu string
Opakowujemy **text ** w object o nazwie **o1 **.
Opakowujemy **o1 ** w object o nazwie **o2 ** (i tutaj mogę popełnić błąd w myśleniu, bo może po prostu object cały czas przechowuje referencję do **text **?)
Skąd o2 wie co siedzi w o1? Bo MessageBox zwraca mi typ string
A tak drążąc dalej temat, jeżeli object potrafi rozpoznać jaki typ wartości przechowuje dlaczego trzeba rzutować i nie działa zwykłe:
string text2 = o2;