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)

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