相反這可能聽起來很奇怪你,但我懶得寫,每次像更改布爾值,初始值
if (threadAlive)
{
threadAlive = false;
}
else
{
threadAlive = true;
}
是不是有一種東西如int ++或int--改變布爾價值與其價值的相反?
相反這可能聽起來很奇怪你,但我懶得寫,每次像更改布爾值,初始值
if (threadAlive)
{
threadAlive = false;
}
else
{
threadAlive = true;
}
是不是有一種東西如int ++或int--改變布爾價值與其價值的相反?
只是這樣做:
threadAlive = !threadAlive;
@ user1046403 in C/C++你可以編寫一個自定義運算符,使它更簡單,在C#中這是一樣好。 –
即使您可以編寫自定義操作符,也請大家幫忙,不要這樣做。對於懂得這種語言的人,「b =!b」是習慣用語。 – Joel
也許如果有什麼像threadAlive !!那將是真棒。我怎麼能寫一個自定義操作符?任何幫助? – user1046403
很簡單:
threadAlive = ! threadAlive;
使用!
操作者:
bool b = true;
b = !b; // b is now false
邏輯否定運算!
是一個一元運算符否定其操作數。它是爲bool
定義和返回true
當且僅當它的操作數是false
和false
當且僅當它的操作數是true
:
threadAlive = !threadAlive;
對於基本類型,您不能overload operators(如果這是您正在尋找的內容)。
至於其他人已經提到的,這是迄今爲止最好的選擇:
threadAlive = !threadAlive;
但是你可以,雖然是我決不會建議,創建自己的bool
型和重載++
或任何運營商你希望顛倒你的價值。
下面的代碼是什麼,應該從未無論如何使用:
public class MyBool
{
bool Value;
public MyBool(bool value)
{
this.Value = value;
}
public static MyBool operator ++(MyBool myBoolean)
{
myBoolean.Value = !myBoolean.Value;
return myBoolean;
}
}
您也可以創建自己的擴展方法,但不會是一個更好的辦法要麼。
是的,沒有。 –
爲什麼在我的主題-1我沒有得到它:) – user1046403
可悲的是,我發現代碼中的代碼類似於每天...'if(something)result = true; else result = false;'或'if(something)result = false; else result = true;' – xanatos