Das ist eine Art eine allgemeine Frage (aber ich bin mit C#), was ist der beste Weg (Best Practice), geben Sie null oder leere Sammlung für eine Methode, die eine Sammlung als Rückgabetyp hat?
Ich stimme mit Will überein, aber ich denke, dass "immer" ein wenig übertrieben ist. While an empty collection might mean "0 items", returning Null could mean "no collection at all" - eg. if you are parsing HTML, looking for an <ul> with id="foo", <ul id="foo"></ul> could return empty collection; if there is no <ul> with id="foo" a null return would be better (unless you want to handle this case with an exception)
0 Stimmen
Dies ist eine subjektive Frage, bei der es auf beiden Seiten leidenschaftliche Gläubige gibt. Es gibt keine allgemein anerkannte "beste Praxis".
5 Stimmen
Ähm, nicht ganz CPerkins. rads.stackoverflow.com/amzn/click/0321545613
1 Stimmen
Nun, es gibt eine bewährte Praxis, von der es aber auch begründete Ausnahmen gibt.
3 Stimmen
@CPerkins - Ja, die gibt es. Es ist klar in Microsofts eigenen .NET-Framework-Entwurfsrichtlinien festgelegt. Siehe RichardOD's Antwort für die Details.
0 Stimmen
Die Sprache, um die es hier geht, ist zwar C#, aber alle diese Leitlinien gelten für jede objektorientierte Sprache, die es gibt.
55 Stimmen
NUR wenn die Bedeutung "Ich kann die Ergebnisse nicht berechnen" ist, sollten Sie null zurückgeben. Null sollte nie die Semantik von "leer" haben, sondern nur "fehlend" oder "unbekannt". Weitere Einzelheiten finden Sie in meinem Artikel zu diesem Thema: blogs.msdn.com/ericlippert/archive/2009/05/14/
3 Stimmen
Bozho: "Jede" ist eine ganze Menge von Sprachen. Wie wäre es mit Common Lisp, wo die leere Liste genau gleich dem Nullwert ist :-)
1 Stimmen
Duplikat: stackoverflow.com/questions/1626597/
9 Stimmen
Eigentlich geht es bei dem "Duplikat" um Methoden, die ein Objekt zurückgeben, nicht um eine Sammlung. Es ist ein anderes Szenario mit anderen Antworten.
0 Stimmen
@EricLippert der Link scheint jetzt auf eine Blog-Verzeichnis-Seite umzuleiten. Kannst du den Link aktualisieren? Danke!
0 Stimmen
@TheMuffinMan: Sie können alte Kommentare leider nicht bearbeiten. Microsoft verschiebt ständig den Ort, an dem sich mein alter Blog befindet. Der neue Link ist learn.microsoft.com/de-us/archive/blogs/ericlippert/
0 Stimmen
Ich hatte diese Frage auch, aber ich denke, null ist nicht leer Sammlung und es kann Problem in einigen Codes verursachen.