I need to pass in a predicate which I can invoke whenever I want (just like a delegate). I am trying to do something like this (I thought Predicate delegate would meet my needs):
MyMethod(Predicate,string> pred);
Called like: MyMethod(s => s.Length > 5);
I want to write the condition inline BUT invoke it when I want, just like a delegate. How could I do this>?
Thanks
You would do it exactly like you wrote:
void MyMethod(Func<string, bool> method) // Could be Predicate<string> instead
{
// Do something
// ...
// Later, if you choose to invoke your method:
if( method(theString) )
{
//...
}
}
Like the following
bool MyMethod(Predicate<string> pred) {
...
if ( pred("foo") ) { ...
}
}
Then
MyMethod(s => s.Length > 5);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With