晚上好,是否有可能有一个Func键<bool>作为while条件
我在想,如果我可以这样做:
while(true)
{
MyEnum currentValue = GetMyEnumValueFromDB();
if(currentValue == MyEnum.BreakIfYouGetThis)
break;
else if(currentValue == MyEnum.AlsoBreakIfYouGetThis)
break;
else
//Do some computing
}
而不是有一段时间(true)循环但是,我想封装在一个函数功能条件逻辑并执行这样的:
while(new Func<bool>(/* what goes here? */))
{
//Do some computing
}
在我的情况下,至少,它看起来干净多了,但我不知道如何做到这一点(还挺新在乐趣C /动作..)。
编辑希望这个澄清:
它也可以做这样的:
while(GetMyEnumValueFromDB() != MyEnum.BreakIfYouGetThis &&
GetMyEnumValueFromDB() != MyEnum.AlsoBreakIfYouGetThis)
{
//Do some computing
}
但是,这2调用数据库...
感谢=)
我想把整个Func的创建和计算用括号括起来。 –
2011-12-16 16:56:43
@Baboon:为什么?这将在每次迭代中创建一个新的委托 - 我看不到仅仅在没有*的情况下使用委托会带来什么好处。你*声称*有些东西看起来更干净,但它完全不清楚为什么。 – 2011-12-16 16:58:44
我喜欢这个答案,但我也会质疑为什么狒狒需要创建一个Func来表示他的状况。如果在本地范围内,Func中的表达式可以直接进行评估。在这种情况下,Func的主要用途是轻松地将它们交换出来,在这种情况下,您需要变量,以便您可以更改分配给它的委托。 – KeithS 2011-12-16 17:03:34