3 Stimmen

Lange Codezeilen vs. Lesbarkeit

Dies ist völlig in Ordnung C#-Code und funktioniert gut, sofern richtige URL. Aber die alles ist nur in einer Zeile durch die Verringerung der Lesbarkeit des Codes getan.

Hier ist der Code:

         return new StreamReader(WebRequest.Create(urlName).GetResponse().GetResponseStream()).ReadToEnd();

Ich frage mich nur, welche Meinung andere Entwickler zu dieser Art von Abkürzung beim Schreiben von Code haben

0 Stimmen

Was genau ist Ihre Frage?

0 Stimmen

-1 Weil es keine richtige Frage ist.

0 Stimmen

Nun, es ist sehr kompakt und sehr sequenziell. Sie können eine Menge davon in asynchrone Workflows von Begin/End-Invoke einbauen.

5voto

Joel Coehoorn Punkte 377088

Schieben Sie es in eine gut benannte Methode, und brechen Sie es vielleicht so auf, dass sich eine einzelne Anweisung über ein paar Zeilen erstreckt. Ich würde auch wahrscheinlich WebClient verwenden:

return new WebClient().DownloadString(urlName);

1 Stimmen

Man sollte meinen, nach 3.5 Versionen hätten sie zumindest eine statische Methode dafür entwickelt :)

5voto

Guffa Punkte 663241

Nein, es handelt sich nicht wirklich um einwandfreien C#-Code. Sie sollten den StreamReader entsorgen, also zumindest eine using Erklärung:

using (StreamReader reader = new StreamReader(WebRequest.Create(urlName).GetResponse().GetResponseStream()) {
   return reader.ReadToEnd();
}

Der Code wird vielleicht etwas lesbarer, wenn er in mehr Zeilen aufgeteilt wird, aber nicht sehr viel.

Im Allgemeinen ziehe ich lesbaren Code einem kompakten Code vor. Wenn in jeder Zeile eine Anweisung steht, ist der Code leichter zu lesen und zu verstehen. Zum Beispiel:

if (i <= 4) i = 4 - i;

Dies wird lesbarer, wenn die if-Anweisung in einer Zeile steht und der Code darin in einer separaten Zeile, wobei die if-Anweisung immer in Klammern steht:

if (i <= 4) {
   i = 4 - i;
}

Dieser Code ist natürlich auch in der kompakten Form recht gut lesbar, aber je komplexer der Code ist, desto mehr profitiert er davon, jede Anweisung in eine eigene Zeile zu setzen.

0 Stimmen

Ich stimme mit Ihnen überein, Natürlich sollte ich das Objekt, das IDisposable-Schnittstelle implementiert entsorgen.

0voto

James Matta Punkte 1543

...IGITT.

Manchmal fasse ich ein paar Dinge in einer Zeile zusammen, normalerweise, wenn ich etwas in einen Stream leite, aber nie so viel.

Die meisten Compiler (zumindest C++ Compiler) werden oft Variablendefinitionen einbinden, wenn die Definition nur einmal verwendet wird, wenn Sie also eine einmalig verwendete Variable wegwerfen. Ihr C#-Compiler wird wahrscheinlich nur ihren Namen durch ihre Definition ersetzen.

0voto

Juanma Punkte 3961

Abgesehen von dem Problem der Lesbarkeit sollten Sie jedes IDisposble-Objekt, das Sie verwenden, entsorgen.

0voto

Yuan Punkte 2540

Eine Anweisung != eine Zeile , können Sie die Lesbarkeit verbessern, indem Sie die Formatierung Ihres Codes verbessern. Natürlich sollten Sie nicht davon ausgehen, dass andere Leute hochauflösende Monitore verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X