2010-03-31 3 views
17

String.IsNullOrEmpty() 공백 문자열을 빈 것으로 계산하려면 무엇이 필요합니까?String.IsNullOrEmpty() 공간 확인

예 :

String.IsNullOrEmpty(" ".Trim()); 

(참고 원래의 질문이 반환 따라서 일반적 일 것입니다 무슨 물었다 :

String.IsNullOrEmpty(" "); 

보다 더 나은 방법이 있나요 : 나는 다음은 일반적인 false 대신 true을 반환하려면 비 교감적인 의견이 더 현명한 질문으로 대체되었습니다).

+8

당신이 그것을 시도 해 봤나 :

String.IsNullOrEmpty(foo) || foo.Trim() == String.Empty 

... 물론

, 당신은 확장 기능으로 구현할 수 true를 돌려줍니다? 전달하는 문자열이 null도 아니고 빈 문자열도 아니므로 false를 반환합니다. – Paddy

+3

간단한 테스트 프로그램을 만들어 직접 사용해 보시지 않겠습니까? –

+0

Paddy : Trim()을 사용하지 않으면 false를 반환합니다. 직접 시도 했으므로 그 이유를 물어 봅니다. 우리 개발자가 매우 자주 트림을 사용하는 내 관점에서 볼 때 트림 기능을 사용해야한다. –

답변

48

.NET 4.0에서는 String.IsNullOrWhiteSpace 메서드를 도입합니다. 그때까지 공백 문자열을 처리하는 것과 같은 방법으로 공백 문자열을 처리하려면 Trim을 사용해야합니다.

.NET 4.0을 사용하지 않는 코드

, 도우미 메서드는 null 또는 비어 있거나 공백 문자열을 확인할 수는 다음과 같이 구현할 수 있습니다

public static bool IsNullOrWhiteSpace(string value) 
{ 
    if (String.IsNullOrEmpty(value)) 
    { 
     return true; 
    } 

    return String.IsNullOrEmpty(value.Trim()); 
} 

String.IsNullOrEmpty 어떤 트리밍을 수행 할 것이며, 경우 바로 확인합니다 string은 널 참조 또는 빈 문자열입니다.

+0

.net 4.0이 종료되었을 때 String의 확장 메소드로 사용하면 어떻게 동작할까요? ... 또는 문자열의 인스턴스에만 String의 확장을 쓸 수 없다는 것을 기다려야합니까? 아니면 내가 틀렸습니까? – cyberzed

+0

@cyberzed, 그 자체로 하나의 질문 일 수 있습니다. 문자열의 인스턴스에만 적용되는 확장 메서드에 대해 옳습니다. 그리고 .NET 4.0의 새로운 메서드는'String' 클래스의 정적 메서드이기 때문에 충돌이 발생하지 않습니다. –

+0

Hehe, 나는 내가 "Add Comment"버튼을 눌렀을 때 답을 내놓았습니다. 그래서 나는 다른 사람들을위한 참고 자료로 남기로했습니다 :) – cyberzed

11
String.IsNullOrEmpty(" ") 

은 ...

String foo = null; 
String.IsNullOrEmpty(foo.Trim()) 

FALSE를 반환 foo가 null로 예외가 발생합니다.

static class StringExtensions 
{ 
    public static bool IsNullOrWhiteSpace(this string value) 
    { 
     return (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim())); 
    } 
}