Książka popełniła błąd polegający na pomieszaniu mechaniki pisania z mechaniką zakresu. Typ wartości nie jest typem odniesienia. To dane są kopiowane, gdy wywołujesz metodę używającą go jako argumentu (bez ref lub out). Typy wartości będą żyły na stosie w zakresie metody, a nie na stercie jako obiekt odniesienia, ale to nie znaczy, że zawsze będzie na stosie.
W związku z tym książka robi oświadczenie o użyciu zamiast oświadczenia mechanika i mylące dwa. To nie jest całkowite bezpodstawne roszczenie, ale jest błędne.
Typy wartości będą się odbywać bez względu na to, gdzie jest ich właściciel.
Więc jeśli ich zasięg jest metodą, będą na stosie. Jeśli ich zasięg jest obiektem, będą żyć z obiektem na stercie.
Przy tym jest całkiem bezpiecznie powiedzieć, że typ wartości najlepiej pozostawić jako niezmienny, ponieważ większość ludzi ma trudności z przewidywaniem mechaniki wartości wartości podrzędnej.
ale nie jest strukturą prawie ZAWSZE członkiem obiektu przypisanego do sterty? czy nie jest tak wszędzie, z wyjątkiem sytuacji, gdy struktura jest po prostu zmienną lokalną? –
Prawie wszędzie. Struktura może również być statycznym elementem klasy, w którym to przypadku nie jest członkiem obiektu, a mimo to jest alokowana na stercie. – yfeldblum
@Simon_Weaver Zmienna typu wartości przekazywana do metody. Nie musi być zdefiniowana w metodzie. Jesteś zagmatwany mechaniki z częstotliwością w użyciu. Najważniejsza jest mechanika, a nie jak często jest używana. –