2015-02-10 92 views
-4

請告訴我如何從CheckStr()停止執行Script()停止執行另一種方法的方法

例如

public void Script() 
{ 
// ... 
    string str = "error"; 
    CheckStr(str); 
// ... 
} 
public void CheckStr(string str) 
{ 
    if (str == "error") 
    { 
     // stop Script(); 
    } 
} 
+0

目前還不清楚你在問什麼。在checkstr中拋出異常? – Carra 2015-02-10 14:35:41

+1

'Application.Exit()'是「停止」它的執行的一種方法..讓用戶知道發生了什麼雖然會更好...您嘗試/研究過什麼? – Sayse 2015-02-10 14:39:02

+0

@Sayse我知道我可以使用'return'來停止方法。但它變成了太多的代碼。我認爲這是不可能的。我想我的問題是不可能解決的。 – user3650075 2015-02-10 14:44:24

回答

1

您可以讓CheckStr()返回值:

public void Script() 
{ 
    string str = "error"; 
    if (!CheckStr(str)) 
    { 
     return; 
    } 

    // ...continue 
} 

public bool CheckStr(string str) 
{ 
    if (str == "error") 
    { 
     return false; 
    } 

    // ...additional checks 

    return true; 
} 
1

最簡單的辦法是有CheckStr返回結果,例如true/false

public bool CheckStr(string str) 
{ 
    if (str == "error") 
    { 
     return false; 
    } 
    ... 
    return true; 
} 

public void Script() 
{ 
    // ... 
    string str = "error"; 
    if (CheckStr(str) == false) 
    { 
     return; 
    } 
    // ... 
} 
1

你可以從CheckStr拋出一個異常,但我不知道這會解決您的具體問題:

public void CheckStr(string str) 
{ 
    if (str == "error") 
    { 
     throw new Exception(); 
    } 
} 

然後,您可以抓住它,無論是在Script,或其它地方:

public void Script() 
{ 
// ... 
    string str = "error"; 
    try { 
     CheckStr(str); 
    } 
    catch 
    { 
     // handle excpetion here. 
    } 
// ... 
}