質問

これはまったく問題のないC#コードであり、正しいURLであれば問題なく機能します。しかし、コードの可読性を低下させることにより、すべてが1行で行われます。

コードは次のとおりです:

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

この種の近道のコード記述方法について、仲間の開発者の意見はどうなっているのでしょうか

役に立ちましたか?

解決

それを適切な名前のメソッドにプッシュし、おそらくそれを分割して、単一の文が数行にまたがるようにします。また、おそらくWebClientを使用します:

return new WebClient().DownloadString(urlName);

他のヒント

いいえ、それは本当に完璧なC#コードではありません。 StreamReaderは破棄する必要があるため、少なくとも using ステートメントが必要です。

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

このコードは、コードをより多くの行に分割することで少し読みやすくなりますが、それほど多くはありません。

一般に、コンパクトなコードよりも読みやすいコードを好みます。各行に1つのステートメントがあると、コードが読みやすくなり、理解しやすくなります。例:

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

これは、ifステートメントを1行に、その中のコードを別の行にすると読みやすくなります。ifステートメントには常に括弧があります:

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

このコードはもちろんコンパクトな形式でも読みやすいですが、コードが複雑になるほど、各ステートメントを別々の行に置くことでより多くの利益が得られます。

...

私は時々、いくつかのものを1行にまとめることがあります。通常は、ストリームに内容をダンプするときですが、これほど多くはしません。

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

読みやすさの問題に加えて、使用しているIDisposbleオブジェクトを破棄する必要があります。

1つのステートメント!= 1行、コードのフォーマットを改善することで読みやすさを改善できます。もちろん、他の人が高解像度モニターを使用していると想定すべきではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top