2011-03-18 99 views
-1

我基本上着眼於一個變量,如果布爾IsSelected == true,那麼它的值設置爲false,如果不將其設置爲true的方法。優化這個方法C#

目前我有它這樣寫

if(A.IsSelected) 
{ 
A.IsSelected = false; 
} 
else 
{ 
A.IsSelected = true; 
} 

是否有可能寫這個像

A.IsSelected = !A.IsSelected 

對不起,這是一個有點瑣碎的問題,我只是想削減的在我的班級和我無法建立的代碼量立即測試它的軟件。

我知道做的,如果(!A.IsSelected)將反轉布爾,但我不是肯定會以這種方式工作的設定值。由於

+3

你的編譯器壞了嗎? – driis 2011-03-18 13:00:21

+0

你甚至問爲什麼?測試代碼非常簡單。它應該比打開網頁瀏覽器更快,去這裏寫一個詳細的問題。 – jgauffin 2011-03-18 13:00:52

+0

No Im正在通過遠程桌面在筆記本電腦上共享項目上工作,Massive lag和其他人簽入了一個錯誤,所以該項目不會生成!不是一個偉大的一天......感謝所有的快速反應。 – Purplegoldfish 2011-03-18 13:02:04

回答

12

是的,它是可能的,做所有的時間。

4

像@Daniel A.懷特指出,這是完全可能的,而且往往做。

然而,變量必須是純布爾;它不能是可爲空。如果它是null,那麼表達式將失敗。

1

您還可以,如果你使用ternary運營商削減代碼。

+0

-1。三元運算符是一個很棒的發明,一旦你圍繞它進行思考,但與OP的建議相比,它如何幫助減少代碼量? – 2011-03-18 13:09:44

+0

在OP的情況下,這可能不是最好的主意,但它仍然普遍適用於更簡單的if-else場景。 – yojimbo87 2011-03-18 13:18:44