Как стать автором
Обновить
26
0
ofigenn @ofigenn

Пользователь

Отправить сообщение
Подождите, но ведь intellisense jQuery поддерживается студией и без SP1.
Эта тема уже давно замусолена в англоязычных блогах.
При желании, можно найти описание, что и как, обратившись в Google.
Возможно я поторопился, когда дал эту статью в качестве примера.
В общем разницы большой не вижу.
(str == null || str.Length == 0) - очень быстро, труъ:)
Например, тут.
Раздел "Проверка на инициализацию строки".
Но где-то в блогах gotdotnet я встречал более понятное и развернутое объяснение со ссылками на первые версии frameworkа и подробным анализом. К сожалению, не нашёл.
Ими вообще можно не пользоваться (это просто "синтаксический сахар"). Исполнение происходит все равно в .Net 2.0, поэтому компилятор преобразует метод расширения в метод класса.
Кажется, в простых словах, это так происходит.
Вот.. а тут возникает вопрос про String.Empty.
Это, конечно, оффтоп. Но есть мнение, что String.Empty лучше заменить на объявление пустой строки... т.е. просто ""!
Вообще-то, бегло посмотрев статью, не увидел там сравнения.
Как я понял, статья рассказывает как с помощью методов расширения приблизить C# (по компактности синтаксиса) к Ruby.
Я сегодня такой непонятный.
С Вами я согласен.
Ха-ха:)) Надо было Назвать как-нибудь понятнее - eval, например:)
Апсолютно, согласен с предыдущим оратором:)
Идея "глубокая":) И, кстати, я понял:) Только оставил без внимания, чтобы свой последний нерв сильно не терзать.
Тем не менее, хочется посмотреть, что там в методе AppendFormat.
У меня только под рукой рефлектора нет. Поэтому и попросил посмотреть:)
Ну-ка:) Какие выводы?:)
У меня пока один:)
Надо посмотреть в рефлекторе метод AppendFormat:)
Ну, тогда пусть компьютер думает за нас:) А я умываю руки:)
Цитирую:)
Donald Knuth, the renowned computer scientist, once said that “Premature optimization is the root of all evil.”
Ну, все это шутки. А если серьёзно, то слышал.
ДА! Ruby - хороший язык. И рельсы для него уже смазаны:)
А когда произойдёт сборка мусора? Сейчас? Через час? А память нужна сейчас:)
Майкрософт тоже не рекомендует:) об этом пишут в начале сгенерированного файла:) Другое дело, что редактировать можно:) Речь ведь идёт о можно/нельзя, а пытливому уму можно все?
Чего-то мне и эта строка не нравится:

result.AppendFormat(", {0}", list[i].ToString());

я бы предложил

result.Append(", ");
result.Append(list[i].ToString());
Кстати Рихтер об этом пишет:) Рихтер, похоже, уже все знает:) И об НЛО и о суперхабре:)
Можно и явно в классе прописать (благо metal генерирует cs файлы):) Хотя конечно partial class - это труъ!:)
Где там?
Если речь про С#, ответ безусловно есть.
Методы расширения доступны только в 3 редакции языка, и их преимущество я вижу в возможности изменять набор функций класса, недоступного для редактирования (от стороннего разработчика, например).
easyman прав, StringBuilder работает гораздо быстрее из-за особенностей хранения объектов string в .Net.

От себя добавлю:
вместо

return result.ToString();

лучше писать

string str = result.ToString();
result.Length = 0; //псевдо вызов Dispose(), вдруг боооольшой текст будет:)
return str;

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность