Übergeben von Parametern
Aktualisiert: November 2007
Methodenparameter können als Wert, als Verweis oder als out-Parameter übergeben werden. Wenn ein Parameter als Wert übergeben wird, ruft die Methode eine Kopie der Daten des Aufrufers ab und kann die Kopie der Daten des Aufrufers nicht ändern. Wenn ein Parameter als Verweis übergeben wird, ruft die Methode einen Zeiger auf die Daten des Aufrufers ab. Diese Daten werden für den Aufrufer freigegeben. Wenn die Methode einen Verweisparameter ändert, erfolgen die Änderungen an den Daten des Aufrufers. Bei Verwendung eines Verweisparameters kann der ursprüngliche Zustand der Daten von der Methode verwendet werden. Ein out-Parameter unterscheidet sich von einem Verweisparameter nur darin, dass out-Parameter ausschließlich für die Rückgabe von Daten an den Aufrufer verwendet werden, während mit Verweisparametern Daten an die Methode übergeben und Daten von der Methode empfangen werden können.
Verwenden Sie weder out- noch Verweisparameter.
Das Arbeiten mit Membern, die out- oder Verweisparameter definieren, erfordert, dass der Entwickler mit Zeigern vertraut ist, die feinen Unterschiede zwischen Werttypen und Verweistypen sowie die Unterschiede bei der Initialisierung von out- und Verweisparametern kennt.
Übergeben Sie Verweistypen nicht als Verweis.
Durch das Übergeben eines Objekts als Verweis kann die Methode das Objekt durch eine andere Instanz ersetzen. In den meisten Szenarien sollte die Methode das angegebene Objekt verwenden und dieses nicht ersetzen dürfen. Es gibt einige wenige Ausnahmen zu dieser Regel (z. B. eine Methode, die zum Vertauschen von Verweisen verwendet werden kann).
Copyright für einzelne Teile 2005 Microsoft Corporation. Alle Rechte vorbehalten.
Copyright für einzelne Teile Addison-Wesley Corporation. Alle Rechte vorbehalten.
Weitere Informationen zu Entwurfsrichtlinien finden Sie im Buch "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" von Krzysztof Cwalina und Brad Abrams, veröffentlicht von Addison-Wesley, 2005.