2016-12-02 85 views
0

我正在尋找真正的回報的短手。示例代碼解釋II更好:真正的回報的真空

if(error == true) 
{ 
    return; 
} 

我問的是代碼的短手版以上,基本上是這樣的:

error?return; 

......或者......

error?.return; 

......或者......

error||return; 

...或其他。你們有這個想法,不,這些工作都沒有。

謝謝大家。

+3

你會把它減少到一行嗎?除了讓它看起來更像bash,更不像c#,哈哈... – code4life

+2

讓我很難理解爲什麼人們喜歡與真/假比較 – Danh

回答

2

我認爲它不會比你自己的代碼輕微減少簡單得多。

也許:

if(error) return; 
+0

也將變量名稱錯誤更改爲像「a」這樣可以節省您的東西一個驚人的4個字符 – meganaut

+0

(還有,我個人推薦使用括號{}否則,你將有一天結束了。 如果(錯誤)回報; Console.WriteLine(「出錯」); – Monza

+0

是的我得到的。這個想法是能夠將簡單的命令(不僅僅是返回)連接到一行中的布爾標誌,更容易閱讀,這就是更簡單的語法。 – Lara

1

三元運算符?:並非設計用於控制流量,它只是設計用於有條件分配。如果您需要控制程序的流程,請使用控制結構,如if/else

三元運算符是用表達式的結果初始化一個變量。在編譯時,C#編譯器將三元表達式爲分支語句

?.是在一個新的空,條件運算符介紹了C#6.0

因此,最好的辦法是

if(error) return 
+0

有條件的(又名三元)操作符不會出於同樣的原因工作,許多OP的建議將不起作用,「return」是一個陳述,而不是表達式。它不能用於需要表達式的地方(條件運算符,空條件運算符,布爾運算符等)。 –

+0

是! @mikez我明白了你的觀點 –

+0

我希望得到像'OnEventHandler?.Invoke(...)'這樣的東西,我發現它更具可讀性,它在使用前檢查每個事件處理函數。 – Lara

0
if(error == true) 
{ 
    return; 
} 

假設error是一個布爾值,你可以縮短這樣說:

if (error) return; 
-2

請嘗試以下,

Boolean returnvalue = error==true? true : false; 

Boolean returnvalue = error ? true : false; 

請讓我知道,如果它爲你工作。

謝謝!

+0

爲什麼這樣,而不是隻返回錯誤? 返回錯誤; –

+0

它永遠不會返回一個空白值,所以你不需要爲此處理錯誤,否則你必須將默認值設置爲false給你的變量,這是不好的做法。 –