Das Buch machte den Fehler, Schreibmechanik mit Oszilloskopmechanik zu verwechseln. Ein Werttyp ist kein Referenztyp. Es werden Daten kopiert, wenn Sie eine Methode aufrufen, die sie als Argument verwendet (ohne ref oder out). Werttypen werden auf dem Stapel im Rahmen einer Methode statt auf dem Heap als Referenzobjekt gespeichert, was jedoch nicht bedeutet, dass sie immer auf dem Stapel vorhanden ist.
Also macht das Buch eine Verwendung Aussage statt einer Mechanik Aussage, und verwirrend die beiden. Es ist keine totale Behauptung, aber es ist falsch.
Wertetypen werden überall dort aufbewahrt, wo sich ihr Besitzer befindet.
Also, wenn ihr Bereich eine Methode ist, werden sie auf dem Stapel sein. Wenn ihr Bereich ein Objekt ist, werden sie mit dem Objekt auf dem Heap leben.
Damit ist es ziemlich sicher zu sagen, ein Wert-Typ ist am besten als unveränderlich, da die meisten Menschen eine harte Zeit haben, die Wert-Typ-Mechanismen von Wert zu prognostizieren.
aber ist eine Struktur fast immer ein Mitglied eines Objekts, das auf dem Heap zugeordnet ist? Ist das nicht überall der Fall, außer wenn die Struktur nur eine lokale Variable ist? –
Fast überall. Eine Struktur kann auch ein statisches Mitglied einer Klasse sein. In diesem Fall ist sie kein Mitglied eines Objekts und wird dennoch auf dem Heap zugewiesen. – yfeldblum
@Simon_Weaver Eine Werttypvariable, die an eine Methode übergeben wird. Es muss nicht in einer Methode definiert werden. Du verwirrst die Mechanik mit der Frequenz, die du verwendest. Mechanik ist wichtig, nicht wie oft sie gebraucht wird. –