2009-03-03 10 views
3

Ceci est parfaitement bien le code C# et fonctionne très bien à condition d'URL correcte. Mais tout est juste fait à une ligne en réduisant la lisibilité du code.longues lignes de code vs lisibilité

Voici le code:

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

Je me demande quelles sont les opinions des autres développeurs sur ce genre de façon courte coupée du code écrit

+0

Quelle est exactement votre question? –

+0

-1 Pour ne pas être une vraie question. – GregD

+0

Eh bien, c'est très compact et très très séquentiel. Vous pouvez en faire beaucoup dans les flux de travail asynchrones de Begin/End-invoke. – Henrik

Répondre

5

de le pousser dans une méthode bien nommée, et peut-être le décomposer de sorte que la seule déclaration s'étende sur quelques lignes. J'utiliserais aussi probablement WebClient:

return new WebClient().DownloadString(urlName); 
+1

Vous penseriez après 3.5 versions qu'ils auraient à moins fait une méthode statique pour cela :) – leppie

0

... YUCK.

Je vais parfois combiner quelques éléments en une seule ligne, généralement lorsque je jette des trucs dans un flux, mais jamais autant.

La plupart des compilateurs (compilateurs C++ au moins) incorporent souvent des définitions de variables si la définition n'est utilisée qu'une seule fois, donc si vous utilisez une seule fois, jetez la variable. Votre compilateur C# remplacera probablement son nom avec sa définition.

0

En plus du problème de lisibilité, vous devez éliminer tout objet IDisposble que vous utilisez.

5

Non, ce n'est pas vraiment un bon code C#. Vous devez disposer StreamReader, donc au moins une déclaration using:

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

Ce code peut avoir une lisibilité de bits en le divisant en plusieurs lignes, mais pas beaucoup.

Généralement, je préfère le code lisible avant le code compact. Avoir une déclaration sur chaque ligne rend le code plus facile à lire et à comprendre. Par exemple:

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

Cela devient plus facile à lire avec l'instruction if sur une ligne et le code à l'intérieur sur une ligne distincte, avec l'instruction if supports ayant toujours:

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

Ce code est Bien sûr, il est plutôt lisible même sous la forme compacte, mais plus le code est complexe, plus il gagne à mettre chaque énoncé sur une ligne distincte.

+0

Je suis d'accord avec vous, Bien sûr, je devrais disposer l'objet qui implémente l'interface IDisposable. – Shiva

0

Une déclaration! = Une ligne, vous pouvez améliorer la lisibilité en améliorant le formatage de votre code. Bien sûr, vous ne devriez pas supposer que d'autres personnes utilisent des moniteurs haute résolution.

Questions connexes