2011-06-26 12 views
7

Jeśli string.Empty != null dlaczego string.IsNullOrEmpty() jest tworzony?dlaczego tworzony jest string.IsNullOrEmpty()?

Chcę tylko powiedzieć, że:
jeśli null i string.Empty różnią się od siebie.

  • Dlaczego string.IsNull(); i string.IsEmpty(); osobne metody nie istnieją.
  • dlaczego istnieje metoda łączona string.IsNullOrEmpty()?
+3

Ponieważ sprawdzanie, czy łańcuch zawiera co najmniej jeden znak, czy nie, jest jedną z najczęstszych rzeczy, więc programiści .NET dali nam niezły skrót. –

+0

Nie jestem zadowolony z mojego formatowania :(Czy ktoś może sformatować to dla mnie ... –

+1

Przeformułować co dokładnie? Wygląda dobrze dla mnie –

Odpowiedz

16
  • string.IsNull nie istnieje dlatego, że po prostu sprawdzić na odniesienie pod rygorem
  • string.IsEmpty nie istnieje, ponieważ można łatwo porównać do równości z „” lub o długości 0
  • string.IsNullOrEmpty istnieje, ponieważ jest to prostsze do napisania jednego wywołanie metody niż używać

    if (text == null || text.Length == 0) 
    

    (lub odwrotność, oczywiście).

Każda z indywidualnych kontroli może być wykonana samodzielnie, ale wygodnie jest mieć kombinację tych dwóch.

+0

aahhhh, nie wiem dlaczego te głupie pytania przychodzą mi do głowy ... :(thanx @Jon za odpowiedź; –

+3

I nie zapomnij .NET 4 dodaje IsNullOrWhitespace, a ta kontrola to więcej niż pojedyncza linia kodu – Euphoric

+0

Ale kiedy taka funkcja jest potrzebna? Rzadko spotykam się z sytuacjami, w których chce się traktuj 'null' i' "" w ten sam sposób, napotkanie 'null' zwykle oznacza błąd programowania i prowadzi do' ArgumentNullException' i '' "' może być błędnym wprowadzeniem przez użytkownika, co wymaga zupełnie innego zachowania.I nawet jeśli jest to błąd powinien wyrzucić coś takiego jak "ArgumentException" – CodesInChaos

1

Służy do sprawdzenia, czy ciąg wejściowy jest poprawny. (np. nie puste i nie puste). Więc nie chcesz wykonywać obu testów za każdym razem, gdy chcesz to zrobić, dlatego właśnie jest on przeznaczony. Jeśli chcesz sprawdzić jeden z nich, możesz po prostu porównać wyniki z == null lub == "".

Powiązane problemy