2009-03-03 7 views
3

これはC#のコードと完全に一致しており、正確なURLが提供されています。しかし、コードの読みやすさを減らすことで、すべてが1行で完了します。 、私はちょうどよく名前のメソッドへの書き込みコードコードの長さと読みやすさの比較

+0

あなたの質問は何ですか? –

+0

-1本当の質問ではないため。 – GregD

+0

さて、それは非常にコンパクトで非常に非常にシーケンシャルです。 Begin/End-invokeの非同期ワークフローに多くのことを加えることができます。 – Henrik

答えて

5

プッシュそれを短いカット方法のこの種の他の開発者の意見はどのようなもの疑問に思って

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

:ここ

コードですおそらくそれを壊して、単一の文章が数行にわたって伸びるようにしてください。 YUCK ...

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

3.5バージョン以降では、少なくともそれのための静的メソッドを作った:) – leppie

0

:私はまた、おそらくWebクライアントを使用すると思います。

私はときどきストリームに物を投げているときに、たいていはこれほど多くのものを1つの行にいくつか組み合わせます。

ほとんどのコンパイラ(少なくともC++コンパイラ)は、定義が1回だけ使用されると変数定義をインライン化することが多いため、一度使用すると変数を捨てます。あなたのC#コンパイラはおそらくその名前をその定義に置き換えます。

0

可読性の問題に加えて、使用しているIDisposbleオブジェクトを処分する必要があります。

5

いいえ、それは本当に完璧なC#コードではありません。

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

コードは非常に複数行に分割してビット可読性を得るが、ないかもしれない。少なくともusing文を持っているので、あなたは、StreamReaderを処分しなければなりません。

一般的に私はコンパクトコードの前に読み取り可能なコードを優先します。各行に1つのステートメントがあると、コードを読みやすく理解しやすくなります。たとえば:

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

これはif文で、1行にif文と別の行にその中にコードをより読みやすくなると常に持つブラケット:このコードはである

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

コンパクトな形式であってもむしろ読みやすいコースですが、コードが複雑になればなるほど、各ステートメントを別々の行に置くことで得られる利益は増します。

+0

私はあなたに同意するもちろん、私はIDisposableインターフェイスを実装するオブジェクトを配置する必要があります。 – Shiva

0

ステートメントは1行= 1行であるため、コードの書式設定を改善して読みやすさを向上させることができます。もちろん、他の人が高解像度モニターを使用していると仮定しないでください。

関連する問題