C # String.IsNullOrEmpty: dobre czy złe?

Po incydencie w pracy, w którym nadużyłem String.IsNullOrEmpty ze zmienną Session, mój współpracownik odmawia teraz zaakceptowania mojego użycia String.IsNullOrEmpty. Po kilku badaniach najwyraźniej pojawił się błąd dla IsNullOrEmpty w MSDN (połączyć) (przeczytaj uwagę na dole):

Od 4 kwietnia 2006 r. Istnieje błąd (możliwy w JIT), który powoduje, że ta metoda zawodzi, gdy optymalizacje są włączone. Wiadomo, że wpływa zarówno na C #, jak i VB.

Więcej informacji można znaleźć tutaj (połączyć). Microsoft ma błąd „rzekomo” naprawiony po Orkach, ale niestety mój pracodawca nadal używa VS2005. Ale jeśli problem zostanie rozwiązany w 2008 roku, niech tak będzie. To jest dla mnie w porządku.

Podczas gdy odmowa mojego kolegi z IsNullOrEmpty dla mojego kolegi jest ślepą ignorancją (IMO), z pewnością nie może mi powiedzieć, dlaczegonie używać go poza niewłaściwym użyciem zmiennej sesji. W całym naszym kodzie użyłem IsNullOrEmpty bez żadnych problemów. Osobiście uważam, że jest o wiele bardziej czytelna, oprócz robienia dwóch rzeczy w jednym stwierdzeniu.

Po wyszukaniu opinii na ten temat znalazłem strony, które uwzględniają zalety / sytuację. Oto kilka witryn, o których przeczytałem na ten temat:

https://blog.rthand.com/post/2006/06/22/1063.aspx

http://www.omegacoder.com/?p=105

Jedno miejsce (http://dotnetperls.com/isnullorempty) podsumowuje metodę (IMHO) całkiem dobrze:

Tutaj sprawdziliśmy metodę IsNullOrEmpty na typie łańcucha, która zapewnia nam dobrą i relatywnie skuteczną metodę sprawdzania, czy łańcuch można zapisać lub użyć. Jednak dla wydajności może być lepiej użyć ręcznych kontroli zerowych. Puste łańcuchy mogą być również testowane w inny sposób, a moje badania pokazują, że sprawdzanie długości jest najszybsze.

Zakładając, że poprawka jest na miejscu (i działa poprawnie) w VS2008 / 2010 / itp., Czy jest jakiś powódnie używać String.IsNullOrEmpty z VS2005 i później? Zdaję sobie sprawę, że może to wydawać się trochę przesadą w stosunku do tak głupiej, małej metody, ale chciałbym wiedzieć, czy dzieje się coś więcej za kulisami i czy ktoś ma alternatywne wyjaśnienia.

questionAnswers(10)

yourAnswerToTheQuestion