2014-04-22 42 views
-3

在c#中有一個條件運算符表達式。如何使雙重問號適用於一般分配?

var a = b ? c : d; 

而且還有一個空合併運算符:

var a = b ?? c; 

但空合併運算符?僅適用於檢查b是否爲空。 我相信每個人都寫很多的重新分配「一」值碼在某些條件下築底:

var a=whatever; 
if(true) 
    a = b; 

如果我可以用一行代碼,我從來沒有使用兩條線路,以使他們在一條線我需要做的是這樣的:

a = b ? a : c; 

我一直在想,如果我能找到在C#中是這樣的:

a = b ??? c; 

if b is true 
    a = c; 
else 
    a is still a; 
+0

你在尋找'||'和'&&'嗎? – Krumelur

+3

看起來像一個功能請求和一個錯誤的論壇 – user2711965

+0

爲什麼你想要使用三元運算符(?:operator)。除了讓你的代碼更短,更隱祕之外,它爲你的應用增加了什麼價值? –

回答

3

有沒有這樣的運營商,並沒有支持向C#添加運算符(僅限overloading certain operators)。我推薦:

if (b) 
    a = c; 

它清晰,簡潔,簡單。如果您的準則不禁止單行if語句,它甚至可能是1號線:

if (b) a = c; 

當然,如果你的指導方針說始終包括對自己行大括號,也可能是4行。

if (b) 
{ 
    a = c; 
} 
+4

但它是兩個額外的線! ***恐怖!!! *** – BoltClock

+1

@Downvoter:照顧解釋? –