Frage

Ich denke an Datagridview ist als Speicherfresser zu sein. Ist es besser, nach Wert zu übergeben ein Datagridview oder durch Referenz? Sollte es sogar überhaupt weitergegeben werden?

War es hilfreich?

Lösung

Passing es nach Wert oder Verweise wird nicht von einem Speicherstandpunkt wichtig, da der Datagridview ein Referenztyp ist, kein Werttyp.

Andere Tipps

Der Typ DataGridView ist eine Art Referenz und daher ist es nicht möglich, die Objekt zu übergeben von Wert. Sie können den Hinweis auf das Objekt als Wert übergeben, aber das ist ein sehr kleiner (typischerweise Zeiger Größe) Wert.

Um zu Josephs Antwort hinzuzufügen, Alles, was sie von Wert vorbei tut, ist eine neue Variable auf dem Call-Stack in den aufgerufenen Methoden Stapelrahmen erstellen, und kopieren Sie die Adresse (in dem Heap) des Datagridview-Objekts in diese Variablen für die Verwendung durch die aufgerufene Methode. dies tut alles ist, das genannte Verfahren zu verhindern, dass ein neues Datagridview-Objekts der Adresse auf die Variable in der Zuordnung Anrufer (Aufruf-Methode), und damit ändert die Datagridview wird der Anrufer zu zeigen.

  1. Sie werden nicht (müssen) sehr oft jede Kontrolle passieren
  2. Sie können nicht das Objekt selbst überhaupt passieren.
  3. Sie können nur den Verweis auf ein Objekt übergeben, und nach Wert so tun (Standard) oder durch Referenz (ref-Parameter) hat keine Auswirkungen auf die Speichernutzung. Es ist eine Design-Entscheidung, aber in der Regel, natürlich für die Kontrollen, werden Sie den Verweis nach Wert übergeben.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top