polecam nigdy używać struct chyba że masz bardzo specyficzny przypadków użycia w umyśle i dokładnie wiedzieć, w jaki sposób struktura będzie korzystać z systemu.
Podczas gdy struktura C# zezwala na członków, działają one nieco inaczej niż klasy (nie można podać podtypu, brak wirtualnej wysyłki, może żyć całkowicie na stosie), a zachowanie zmienia się w zależności od podnoszenia itp. (Podnoszenie to proces promowania typu wartości do sterty - niespodzianka!)
Tak więc, aby odpowiedzieć na pytanie: Myślę, że jeden z największych mylących w C# używa struktur "dla wydajności". Powodem tego jest "nadmiar", którego nie da się dokładnie zmierzyć, nie widząc, jak on współdziała z resztą systemu i rolą, jeśli cokolwiek z tego wynika, gra. Wymaga to profilowania i nie można go podsumować tak trywialnym stwierdzeniem, jak "mniejszy narzut".
Istnieje kilka przypadków dobrych dla typów wartości struct - jednym z przykładów jest złożona wartość RGB przechowywana w tablicy dla obrazu. Dzieje się tak, ponieważ typ RGB jest mały, może być na nim wiele obrazów, typy wartości mogą być dobrze zapakowane w tablice i mogą pomóc w utrzymaniu lepszej lokalizacji pamięci itp.
Zakładam, że masz na myśli to, że nigdy nie zdefiniowałeś struktury. Prawdopodobnie używasz ich codziennie, nie myśląc o tym. – Gabe
@Gabe Prawidłowo, naprawiłem to :-) –
@pst: Myślę, że Gabe odnosi się do tego, co mówisz "Polecam, aby nigdy nie używać struktury". Oczywiście nie o to ci chodzi. –