Stellen Sie sich vor, jemand kodiert Folgendes:
string s = "SomeString";
s.ToUpper();
Wir alle wissen, dass im obigen Beispiel der Aufruf der Methode "ToUpper()" sinnlos ist, da die zurückgegebene Zeichenkette überhaupt nicht behandelt wird. Dennoch machen viele Leute diesen Fehler und verbringen viel Zeit mit der Fehlersuche, indem sie sich fragen: "Warum werden die Zeichen in meiner 's'-Variablen nicht großgeschrieben?" ????
Wäre es also nicht großartig, wenn es ein Attribut gäbe, das auf die Methode "ToUpper()" angewendet werden könnte, das einen Compiler-Fehler erzeugt, wenn das Rückgabeobjekt nicht behandelt wird? Etwas wie das Folgende:
[MustHandleReturnValueAttribute]
public string ToUpper()
{
…
}
Damit dieser Code korrekt kompiliert werden kann, müsste der Benutzer den Rückgabewert wie folgt behandeln:
string s = "SomeString";
string uppers = s.ToUpper();
Ich denke, dies würde deutlich machen, dass Sie den Rückgabewert behandeln müssen, sonst gibt es kein Punkt beim Aufruf dieser Funktion.
Im Fall der Zeichenkette mag das keine große Sache sein, aber ich kann mir andere, stichhaltigere Gründe vorstellen, warum dies nützlich sein könnte.
Was haltet ihr davon?
Danke.