2015-10-16 68 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