W tablicy z elementami o typie wartości wszystkie elementy muszą być dokładnie tego samego typu. Obiekt przechowujący tablicę musi przechowywać informacje o typie elementów w niej zawartych, ale informacja ta jest przechowywana tylko raz na tablicę, a nie raz na element.
Należy zauważyć, że ponieważ tablice otrzymują specjalną obsługę w .NET Framework (w porównaniu do innych typów kolekcji), tablice typu struktury umożliwiają działanie elementów zawartych w nich struktur na "na miejscu". W konsekwencji, jeśli można ograniczyć się do przechowywania struktury w tablicy (a nie do innego typu kolekcji) i zminimalizować niepotrzebne kopiowanie instancji struct, możliwe jest wydajne działanie z strukturami prawie dowolnego rozmiaru. Jeśli zachodzi potrzeba posiadania zbioru rzeczy, z których każda będzie wiązała się z czterema wartościami Int64
i czterema wartościami Int32
(w sumie 48 bajtów), użycie tablicy ośmioelementowych struktur o otwartym polu może być bardziej wydajne i semantycznie czystsze niż reprezentowanie każdej rzeczy za pomocą czterech elementów z Int64[]
i czterech elementów z Int32[]
lub za pomocą tablicy odwołań do nieudostępnianych obiektów klasy klasyfikujących.
Nic lepszego niż dowód, z możliwością replikacji metodą ekstrakcji. Dzięki! –