2015-10-16 89 views
-1

返回了無效的方法。如果我有一個void方法我可以做這樣的事情來擺脫它早期從嵌套方法

public void CheckIntNotLessThanZero(int value) 
{ 
    if (int < 0) 
    { 
     return; 
    } 

    Console.WriteLine("Not less than zero!") 
} 

但是我運行完全相同的檢查幾次,所以我想把它放在它自己的方法,所以我不重複代碼:

public void CheckIntNotLessThanZero(int value) 
{ 
    return CheckIntValue(value); 

    Console.WriteLine("Not less than zero!") 
} 

public void CheckIntValue(int value) 
{ 
    if (value < 0) 
    { 
     return; 
    } 
} 

這是一個基本的例子,但有沒有辦法做到這一點?

+0

你面臨什麼問題? –

+1

@TechieBee:在這種情況下,當其中一個條件失敗時,它看起來像OP想要中斷方法執行(樣本中的「CheckIntNotLessThanZero」)。 – Dennis

+0

@丹尼斯 - 哦..謝謝..現在我明白了! –

回答

5

把你Check...方法返回bool值,每次調用後檢查:

public bool CheckIntValue(int value) 
{ 
    return value < 0; 
} 

public void CheckIntNotLessThanZero(int value) 
{ 
    if (CheckIntValue(value)) 
     return; 

    Console.WriteLine("Not less than zero!") 
} 

注意,你可能例外Check...方法,但你不得。使用異常來管理執行流是一種不好的做法。

+0

我可以像你的例子那樣'返回CheckIntValue(value)'嗎? – FLSH

+0

你不能。 'CheckIntNotLessThanZero'返回'void','CheckIntValue' - 'bool'。這甚至不會編譯。 – Dennis