3

这是非常好的 C# 代码,并且在提供正确的 URL 时可以正常工作。但是通过降低代码的可读性,一切都只是在一行中完成。

这是代码:

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

我只是想知道开发人员对这种写代码的捷径有什么看法

4

5 回答 5

5

将其推入一个有名的方法中,并可能将其拆分,以便单个语句延伸到几行。我也可能会使用 WebClient:

return new WebClient().DownloadString(urlName);
于 2009-03-03T20:50:07.743 回答
5

不,这不是非常完美的 C# 代码。您应该处置 StreamReader,因此至少有一个using声明:

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

通过将其分成更多行,该代码可能会获得一点可读性,但不是很多。

通常我更喜欢可读代码而不是紧凑代码。每行有一个语句使代码更易于阅读和理解。例如:

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

将 if 语句放在一行中,将其中的代码放在单独的行上,这变得更具可读性,if 语句始终带有括号:

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

当然,即使是紧凑形式,这段代码也具有相当的可读性,但代码越复杂,将每个语句放在单独的行中获得的收益就越多。

于 2009-03-03T21:16:55.857 回答
0

...哎呀。

有时我会将一些东西合并成一行,通常是在我将东西倾倒到流中时,但从来没有这么多。

如果定义只使用一次,大多数编译器(至少是 c++ 编译器)通常会内联变量定义,因此如果您一次性使用,请丢弃变量。您的 C# 编译器可能只是将其名称替换为其定义。

于 2009-03-03T20:51:41.453 回答
0

除了可读性问题之外,您还应该处置您正在使用的任何 IDisposble 对象。

于 2009-03-03T20:52:14.730 回答
0

一条语句!= 一行,您可以通过改进代码格式来提高可读性。当然,您不应该假设其他人使用高分辨率显示器。

于 2011-07-01T07:30:53.230 回答