2010-04-21 5 views
6

C#에서 문자열을 부정화하는 간단한 방법이 있습니까? ('X'는 문자열 인 경우)C#에서 문자열을 부정화하는 간단한 방법이 있습니까?

그것은 동등한 것은 :

string y = #x; 

희망찬 :

string y = x == null ? "" : x; 

내가 바라고 생각이 같은 일을 할 몇 가지 연산자있다 생각하고 있니?

내가 지금까지받은 문자열 클래스의 확장 방법 한 가장 가까운 :

public static string ToNotNull(this string value) 
{ 
    return value == null ? "" : value; 
} 

나를 수행 할 수 있습니다, 사람을 그에

string y = x.ToNotNull(); 

어떤 개선?

+1

이 문제를 방지하려면 null 문자열을 사용하지 마십시오. 다른 사람이 null 문자열을 작성하면 폭력이 필요할 수 있습니다. YMMV. – Greg

+0

마지막 예제가 작동한다는 사실은 객체가 null인지 여부를 확인하기 위해 객체에 대한 메소드를 호출 한 이후 꽤 무서운 것입니다. 확장 메소드가 정적이라는 것을 알고 있지만, 그것을 보았을 때 다소 느껴집니다. – ntziolis

+0

null 문자열은 악의적인데, String.Empty로 인스턴스화하고 위와 같이 논리를 피하십시오. –

답변

16

이 작동합니다 : 당신이 null 허용 및 공유 같은처럼 행동 자신의 유형을 만드는 것을 고려할 수 있습니다 대신 확장 방법을, reguarly이 필요한 경우

string y = x ?? ""; 

http://msdn.microsoft.com/en-us/library/ms173224.aspx

+0

아, 네, 좋은 누적 연산자. 감사. –

0

를 참조하십시오 사용법에는 System.Nullable.GetValueOrDefault()가 있습니다. 방법. 불행하게도 값 유형에 대해 System.Nullable 만 사용할 수 있으므로 nullable 문자열을 표준으로 만들 수 없습니다.

관련 문제