2013-06-03 22 views
7

我有以下聲明中C#:如何簡化的if/else語法

serverCard.Details = !String.IsNullOrEmpty(card.Details) ? card.Details : serverCard.Details; 

我要檢查,看看是否card.Details爲null或空...如果不是,寫的值。有沒有什麼語法可以讓我忽略其他條件?

+2

這不會有多大意義。考慮一下,將其他部分遺漏掉會在代碼中留下空隙,即你想要分配什麼? – Polity

+0

我所做的唯一改變就是刪除'!'並交換條件值以簡化讀取流程。 –

回答

16

當然,只是使用普通的if

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

這是更好的選擇國際海事組織...其他只是在這種情況下毫無意義。 – 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(!card.Details.IsNullOrWhiteSpace()) 
    serverCard.Details = card.Details 

擴展方法會爲每個字符串工作。