Jeśli mam dwie klasy, A
i B
gdzie B pochodzi od:Informacje o lanego C# typów referencyjnych w pamięci
class A {}
class B : A { }
mogę uskok dość szczęśliwie wystąpienie B
do A
.
B b = new B();
A a = b;
Teraz mogę zrozumieć, w jaki sposób środowisko wykonawcze może określić, że typ bazowy jest B, jako stronie 132 ECMA-335 (Common Language Infrastructure (CLI) Przegrody I do VI) stwierdza
Objects typów inicjowanych musi zawierać wystarczającą ilość informacji, aby uzyskać w danym czasie rzeczywistym dokładny typ (z uwzględnieniem typów i liczby ich ogólnych argumentów). [Uzasadnienie: Jest to konieczne, aby prawidłowo wdrożyć odlewanie i instancję-testów, a także w refleksji możliwości
więc, w jaki sposób środowisko wykonawcze wiedzieć, że chociaż typ bazowy jest B
w rzeczywistości jest przechowywany w A
. Wiem na pewno, że nie zobaczę dostępnych metod na B
, ale jeśli podstawowym typem jest B
, w jaki sposób zapisuje on typ lokalizacji przechowywania A
?
Czy to ma sens?
Pozdrowienia Marc, to wyjaśniono. –