Was ist der Unterschied zwischen Value Types und Reference Types in C#?
Ein Value Type (struct, int, bool, enum) hält seine Daten direkt und wird bei einer Zuweisung kopiert; ein Reference Type (class, string, Arrays) hält einen Zeiger auf Daten im Heap, und bei einer Zuweisung wird der Zeiger kopiert, nicht das Objekt. Wird eine Struct an eine Methode übergeben, die sie verändert, arbeitet die Methode stillschweigend mit einer Kopie, außer du übergibst sie per ref. Eine Struct, die in einem Feld einer Klasse steckt, liegt zusammen mit ihr im Heap, nicht auf dem Stack.