这是非常好的C#代码,并提供正确的URL提供良好的工作。但是,通过降低代码的可读性,一切都只在一行完成。
以下是代码:
return new StreamReader(WebRequest.Create(urlName).GetResponse().GetResponseStream()).ReadToEnd();
我只是想知道开发人员对这种编写代码的捷径方式的看法是什么
答案 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)
一个声明!=一行,您可以通过改进代码格式来提高可读性。当然,你不应该假设其他人使用高分辨率显示器。