C # String.IsNullOrEmpty: хорошо или плохо?

После инцидента на работе, когда я неправильно использовал String.IsNullOrEmpty с переменной Session, мой коллега теперь отказывается принять мое использование String.IsNullOrEmpty. После некоторого исследования, по-видимому,ошибка, указанная для IsNullOrEmpty в MSDN (ссылка на сайт) (см. примечание внизу):

По состоянию на 4 апреля 2006 г. существует ошибка (возможная в JIT), которая приводит к сбою этого метода при включении оптимизации. Известно, что влияет как на C #, так и на VB.

Более подробную информацию можно найти здесь (ссылка на сайт). Microsoft ошибка "якобы» исправлено после Orcas, но, к сожалению, мой работодатель все еще использует 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 / etc., Есть ли причинане использовать String.IsNullOrEmpty с VS2005 и выше? Я понимаю, что это может показаться немного излишним из-за такого глупого маленького метода, но яхотел бы знать, если естьбольше за кулисами происходит, и если у кого-то есть альтернативные объяснения.

Ответы на вопрос(10)

Ваш ответ на вопрос