После инцидента на работе, где я неправильно использовал String.IsNullOrEmpty с переменной Session, мой коллега теперь отказывается принять мое использование String.IsNullOrEmpty. После некоторых исследований, по-видимому, есть ошибка в списке для IsNullOrEmpty на MSDN (link) (прочитать примечание внизу):C# String.IsNullOrEmpty: хорошо или плохо?
По состоянию на 4 апреля 2006 года, есть ошибка (возможно в JIT), что делает этот метод не работает при оптимизации включен. Как известно, это влияет как на C#, так и на VB.
Дополнительную информацию можно найти здесь (link). Microsoft - ошибка «якобы» фиксированных пост-орков, но, к сожалению, мой работодатель все еще использует VS2005. Но если проблема будет исправлена в 2008 году, пусть будет так. Все в порядке со мной.
Хотя отказ моего коллеги из моего кода с IsNullOrEmpty мне слепо невежество (IMO), он, конечно, не может сказать мне, почему не использовать его, кроме неправильного использования с переменным сеансом. Я использовал IsNullOrEmpty по всему нашему коду без каких-либо проблем. Лично я считаю его более читаемым, помимо того, что он делает две вещи в одном утверждении.
После того, как вы нашли мнение по этому вопросу, я нашел сайты, которые занимают профи. Вот некоторые из сайтов, которые я читал об этом:
https://blog.rthand.com/post/2006/06/22/1063.aspx
http://www.omegacoder.com/?p=105
Один сайт (http://dotnetperls.com/isnullorempty) суммирует метод (ИМХО) довольно хорошо:
Здесь мы посмотрел, что метод IsNullOrEmpty на тип строки, который предоставляет нам хороший и относительно эффективный метод проверки, Строка в порядке, чтобы сохранить или использовать. Тем не менее, для исполнения, может быть лучше использовать ручные проверки. Пустые строки также могут быть протестированы другими способами, и мое исследование показывает, что проверка является самой быстрой.
Предполагая, что ошибка исправления на месте (и работает правильно) в VS2008/2010/и др., Есть ли причина не использовать String.IsNullOrEmpty с VS2005 и за его пределами? Я понимаю, что это может показаться немного переполненным таким глупым методом, но я хотел бы знать, есть ли что-то за кулисами, и если у кого есть альтернативные объяснения.
Спасибо, я буду изучать получение пакета обновления, если он еще не установлен. Я не уверен во всех обручах, которые мне придется прыгать, но в любом случае, мы должны запускать последний пакет обновлений на нашем веб-сервере. Благодаря! – osij2is