![](/img/trans.png)
[英]How to detect if the Control.Click event was by the mouse, keyboard, or something else?
[英]Detect if result is 0 , -4 or something else?
我有一個最后有結果的方法,我想檢測數字是否為 0 以及是否為 -4。 0 表示好 -4 表示可以解決的事情 其他都是不好的。 喜歡
if ( Result != 0)
{
MessageBox.Show("It's bad!")
}
else if ( Result == -4)
{
Thread.Sleep(20000);
MyMethod.TryAgain();
}
else
{
MessageBox.Show("It's good");
}
我的問題是 -4 不是 0,所以如果我得到結果 -4 它需要我的 Result != 0 方法。 我該如何解決? 先感謝您。
使用switch和case 。
switch (Result) {
case 0:
MessageBox.Show("It's good");
break;
case -4:
Thread.Sleep(20000);
MyMethod.TryAgain();
break;
default:
MessageBox.Show("It's bad!");
break;
}
微軟文檔: https : //msdn.microsoft.com/en-us/library/06tc147t(v=vs.110).aspx
只需將您的 if 結構重新排序為以下內容:
if ( Result == 0)
{
MessageBox.Show("It's good")
}
else if ( Result == -4)
{
Thread.Sleep(20000);
MyMethod.TryAgain();
}
else
{
MessageBox.Show("It's bad");
}
所以你最初的問題,即首先評估Result != 0
案例,已經不復存在了。
當您構建一系列非排他條件時,從最強的條件(即最具體的條件)開始。 否則,將執行較弱條件的代碼,從而阻止對更具體條件的訪問。
在您的情況下, Result == -4
意味着Result != 0
,這意味着第一個條件比第二個條件更具體。 因此,您應該在Result != 0
之前檢查Result == -4
。 否則,永遠不會達到Result == -4
。
C# 提供了多種實現此邏輯的方法。 只要您遵循從最具體到最不具體對條件進行排序的一般規則,選擇特定的實現取決於您。
只需更改分支順序
if (Result == -4) \\ solve
else if (Result != 0) \\ bad
else \\ good
對不起,錯誤的代碼。 請參閱下面的評論。
switch(Result) {
case 0:
MessageBox.Show("It's bad!");
break;
case -4:
Thread.Sleep(20000);
MyMethod.TryAgain();
break;
default:
MessageBox.Show("It's good");
break;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.