Best practice: ref-parameter oder return-Wert?

Eigentlich mache ich eine Liste als Referenz-parameter wie folgt:

public static List ListMethod(List result)

Sah ich einige Leute, die auch in dieser Hinsicht:

public static void ListMethod(ref List result)

Wenn ich mich nicht falsch, "meine" Methode nimmt auch die list als Referenz-parameter, und Sie sollten in der Lage sein, es zu benutzen, genauso wie "andere" in seiner Methode.

Aber es scheint mehr "sauber" zu mir, dass Sie einen parameter einzugeben, tun Sie etwas mit ihm und zurück in die Methoden Rückgabewert.

Irgendwelche guten Argumente, die für oder gegen eine Methode oder die andere?

Es ist eine Liste? warum senden Sie es per ref was ist es, das Sie zu erreichen versuchen?
Mit out übergeben, wie ref/out, intern einen Verweis auf heap-Kopie auf stack-und, dass die an die aufgerufene Methode. Wenn verwendet, ref, die die gleiche Referenz wird als argument übergeben.
Warum Sie denken, Sie brauchen, um wieder eine List in Ihre erste Methode, und nicht alles zurückzugeben, was in der zweiten?
Natürlich, wenn die Liste selbst ist einfach nur mutiert dann weder die Rückgabe oder die ref ist erforderlich. Allerdings, wenn Sie zuweisen eine völlig neue Liste der parameter, dann wird entweder eine Rückkehr oder ref ist nötig, um die angerufenen um die Veränderung zu sehen. Jedoch, wie bereits erläutert, gibt es Unterschiede zwischen Rückkehr und ref, auch wenn das Ergebnis scheint das gleiche zu sein.
Dieses einfache Beispiel sollte machen u verstehen pastebin.com/sm8niPRD gleiche wie das, was jon skeet sagt.

InformationsquelleAutor Dorababu Meka | 2011-11-21

Schreibe einen Kommentar