Good evening,
I was wondering if I could do something like:
while(true)
{
MyEnum currentValue = GetMyEnumValueFromDB();
if(currentValue == MyEnum.BreakIfYouGetThis)
break;
else if(currentValue == MyEnum.AlsoBreakIfYouGetThis)
break;
else
//Do some computing
}
But instead of having a while(true) loop, I’d want to encapsulate the conditional logic in a Func and execute it like this:
while(new Func<bool>(/* what goes here? */))
{
//Do some computing
}
In my case at least, it would look much cleaner, but i’m not sure how to do it (kinda new at Func/Action..).
EDIT hope this clarifies:
It could also be done like this:
while(GetMyEnumValueFromDB() != MyEnum.BreakIfYouGetThis &&
GetMyEnumValueFromDB() != MyEnum.AlsoBreakIfYouGetThis)
{
//Do some computing
}
But that’s 2 call to the database…
Thanks =)
Well you could have:
Is that what you’re thinking of? It’s not really clear…
EDIT: In the example you’ve given, I’d use something like:
Or:
EDIT: To counter KeithS’s answer, this is entirely valid:
It’s horrible, but it’s valid. (It can be made slightly less horrid by explicitly calling
Invoke, but it’s still not nice.)