Die übergabe von Objekten per Referenz vs-Wert

Ich will einfach nur, um zu überprüfen, mein Verständnis von C#'s Möglichkeiten, Dinge zu behandeln, bevor ich Tauchen Sie zu tief in die Gestaltung meiner Kurse. Mein Aktuelles Verständnis ist, dass:

  • Struct ist ein Wert Typ, was bedeutet, es enthält tatsächlich die Daten-member definiert.
  • Class ist ein Referenz Typ, was bedeutet, es enthält Verweise auf die Daten-member definiert.

  • Einer Signatur der Methode übergibt die Parameter von Wert, was bedeutet, dass eine Kopie des Werts übergeben wird, die innerhalb der Methode, so dass es teuer für große arrays und Datenstrukturen.

  • Eine Methodensignatur definiert einen parameter mit dem ref oder aus keywords wird stattdessen ein parameter übergeben werden, die von Referenz, was bedeutet, dass ein Zeiger auf das Objekt bereitgestellt wird, statt.

Was ich nicht verstehe, ist, was passiert, wenn ich eine Methode aufgerufen wird, was tatsächlich passiert. Hat neuen() get aufgerufen? Macht es einfach automatisch kopieren Sie die Daten? Oder kommt es eigentlich nur auf das ursprüngliche Objekt? Und wie funktioniert mit ref und aus beeinflussen Sie diese?

  • Sind Sie Fragen, was passiert Werttypen oder Referenztypen?
  • Beide, denke ich. Aber Avi ' s Antwort unten zu haben scheint beide Fälle abgedeckt.
InformationsquelleAutor Kyle Baran | 2013-06-30
Schreibe einen Kommentar