冗长的代码行与可读性

时间:2009-03-03 20:44:47

标签: c# .net webrequest streamreader responsestream

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

以下是代码:

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

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

5 个答案:

答案 0 :(得分:5)

将它推入一个命名良好的方法,并将其分解,以便单个标准延伸几行。我也可能使用WebClient:

return new WebClient().DownloadString(urlName);

答案 1 :(得分: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;
}

这个代码当然是可读的,即使是紧凑的形式,但代码越复杂,将每个语句放在一个单独的行上就越多。

答案 2 :(得分:0)

... YUCK。

我有时会将一些内容组合成一行,通常是在我将内容转储到流中时,但从来没有这么多。

如果定义只使用一次,那么大多数编译器(至少是c ++编译器)通常会内联变量定义,所以如果你使用一次,就扔掉变量。您的C#编译器可能只是将其名称替换为其定义。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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