Odpowiedź Svicka jest dobra, ale pomyślałem, że dodam kilka dodatkowych punktów.
Po pierwsze, akapit jest wadliwy. Typy wskaźników nie dziedziczą po obiekcie. Wartości, które są w czasie kompilacji znane jako typy interfejsów lub typy parametrów typów, w czasie wykonywania będą albo niepoprawnymi referencjami, albo autentycznymi instancjami czegoś, co dziedziczy po obiekcie, ale zawsze dziwnie było mi powiedzieć, że te typy „ odziedziczyć "po obiekcie; Dziedziczenie jest właściwością, że członkowie przodka są członkami potomka, ale zwykle nie myślisz o „ToString” jako o członku IEnumerable. Myślicie o tym jako o członku implementującym IEnumerable .
Akapit jest również wadliwy, ponieważ jest to jedyne miejsce, w którym „typ pierwotny” pojawia się w specyfikacji i pojawia się bez definicji. Jest to zatem niepotrzebne i mylące i powinno zostać usunięte.
Chciałem, aby ten akapit został przez jakiś czas naprawiony. Następnym razem, gdy zobaczę Madsa, przypomnę mu.
Aby odpowiedzieć na konkretne pytanie: svick jest oczywiście poprawny, ale warto zobaczyć konkretny przykład. Kiedy powiesz:
struct ColorfulInt
{
int value;
Color color;
...
}
i tworzysz, powiedzmy, tablicę:
ColorfulInt[] x = new ColorFulInt[100];
Następnie pamięć dla tych 100 liczb wewnętrznych i 100 kolorów przechodzi do samej tablicy . Gdyby zamiast tego ColorfulInt była tablica, tablica zawierałaby 100 odwołań do ColorfulInt, z których każde musiałoby być przydzielone indywidualnie. Indywidualne przydzielanie tych stu elementów jest znacznie mniej wydajne zarówno pod względem czasu, jak i przestrzeni niż zwykłe przydzielanie pamięci bezpośrednio w samej tablicy.
Oznacza to, że typy wartości są przechowywane bezpośrednio tam, gdzie je definiujesz, co czyni je bardziej wydajnymi w porównaniu z typami referencyjnymi.
Co to dokładnie znaczy? Jeśli masz zmienną lokalną typu wartości, zwykle będzie ona przechowywana bezpośrednio na stosie (ale istnieje wiele wyjątków). Jeśli masz pole typu wartości, zostanie ono zapisane bezpośrednio w otaczającej klasie lub strukturze.
źródło