Вопрос

Это совершенно прекрасный код на C #, и он отлично работает при условии правильного URL.Но все это просто делается в одной строке за счет снижения читабельности кода.

Вот этот код :

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

Мне просто интересно, каковы мнения коллег-разработчиков о таком коротком способе написания кода

Это было полезно?

Решение

Поместите это в хорошо названный метод и, возможно, разбейте его так, чтобы один statment растягивался на пару строк.Я бы также, вероятно, использовал WebClient:

return new WebClient().DownloadString(urlName);

Другие советы

Нет, на самом деле это не совсем идеальный код на 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;
}

Этот код, конечно, довольно удобочитаем даже в компактном виде, но чем сложнее код, тем больше он выигрывает от размещения каждого оператора в отдельной строке.

...ФУ.

Иногда я объединяю несколько вещей в одну строку, обычно когда я загружаю материал в поток, но никогда в таком количестве.

Большинство компиляторов (по крайней мере, компиляторы c ++) часто используют встроенные определения переменных, если определение используется только один раз, поэтому, если вы используете один раз, выбросьте переменную.Ваш компилятор C #, вероятно, просто заменит его имя на его определение.

В дополнение к проблеме с удобочитаемостью, вы должны удалить любой объект IDisposble, который вы используете.

Один оператор ! = одна строка, вы можете улучшить читаемость, улучшив форматирование вашего кода.Конечно, вы не должны предполагать, что другие люди используют мониторы с высоким разрешением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top