I this MSDN Magazine article, stany autorem (moje podkreślenie):Czy rozpakowywanie powoduje zwrócenie wskaźnika do wartości w pudełkowym obiekcie na stercie?
Note, że boks zawsze tworzy nowy obiekt i kopiuje bez opakowania wartość za bitów do obiektu. Z drugiej strony, unboxing po prostu zwraca wskaźnik do danych w pudełkowym obiekcie: nie ma kopii pamięci. Jednak zazwyczaj jest to , ponieważ twój kod będzie powodować, że dane wskazane przez unboxed odwołania , które mają być skopiowane w każdym razie.
Jestem zdezorientowany przez zdanie, które pogrubiłem i zdanie, które następuje po nim. Ze wszystkiego, co przeczytałem, w tym z this MSDN page, nigdy wcześniej nie słyszałem, że rozpakowanie po prostu zwraca wskaźnik do wartości na stercie. Miałem wrażenie, że rozpakowanie spowoduje, że będziesz mieć zmienną zawierającą kopię wartości na stosie, tak jak zaczynałeś. W końcu jeśli moja zmienna zawiera "wskaźnik do wartości na stercie", to nie mam typu wartości, mam wskaźnik.
Czy ktoś może wyjaśnić, co to oznacza? Czy autor był na crack? (W artykule jest co najmniej jeden inny rażący błąd). A jeśli to prawda, jakie są przypadki, w których "twój kod spowoduje, że dane wskazywane przez unboxed referencje będą mimo to skopiowane"?
Właśnie zauważyłem, że artykuł ma prawie 10 lat, więc może to jest coś, co zmieniło się bardzo wcześnie w życiu .Net.
Rozumiem! Dziękuję Ci. –