2013-06-03 2 views
7

경우이 C# .NET을 단순화하는 방법 :나는 다음과 같은 문이/다른 구문

내가 확인하고 card.Details가 null 또는 비어있는 경우하지 않을 경우 ... 참조 값을 기록 할
serverCard.Details = !String.IsNullOrEmpty(card.Details) ? card.Details : serverCard.Details; 

. 조건부로 else를 생략 할 수있는 구문이 있습니까?

+2

그다지 의미가 없습니다. 생각해 보면, 다른 부분을 생략하면 코드에 갭이 남습니다. 즉 할당하려는 대상은 무엇입니까? – Polity

+0

유일한 변화는 '!'를 제거하고 단순히 읽기의 흐름에 대한 조건부 값을 교환하는 것입니다. –

답변

16

물론, 그냥 사용 if 일반 :

if(!String.IsNullOrEmpty(card.Details)) 
    serverCard.Details = card.Details 
+1

이것은 IMO의 더 좋은 옵션입니다 ...이 경우 다른 사람은 무의미하다고 느낍니다. – SlxS

+0

+1 내가 생각한 것. 깨끗하고 간단합니다. –

+4

은 항상 {}을 (를) 옹호하며 +1 할 수 없습니다. – sschrass

5

당신은 항상 이전 if 문 사용할 수 있습니다

if(!String.IsNullOrEmpty(card.Details)) 
{ 
    serverCard.Details = card.Details; 
} 

내가 삼항 연산자가 여기에 필요하지 않습니다 생각합니다.

0

String에 대한 확장 메서드를 작성하여 nullOrEmpty인지 확인할 수 있습니다.

public static bool IsNullOrEmpty(this string str) 
{ 
    return string.IsNullOrEmpty(str); 
} 

public static bool IsNullOrWhiteSpace(this string str) 
{ 
    return string.IsNullOrWhiteSpace(str); 
} 

는 IF : 확장 방법은 모든 문자열을 작동

if(!card.Details.IsNullOrWhiteSpace()) 
    serverCard.Details = card.Details 

정규는 경우

확장 메서드 짧아 질 것입니다.