如何将谓词定义为函数参数

dev*_*ium 8 .net c# predicate

我希望能够写出一些东西

void Start(some condition that might evaluate to either true or false) {
    //function will only really start if the predicate evaluates to true
}
Run Code Online (Sandbox Code Playgroud)

我猜它必须是这样的形式:

void Start(Predicate predicate) {
}
Run Code Online (Sandbox Code Playgroud)

每当谓词评估为true或false时,如何检查Start函数内部?我对谓词的使用是否正确?

谢谢

Ant*_*ram 13

这是在函数中使用谓词的一个简单示例.

static void CheckRandomValueAgainstCriteria(Predicate<int> predicate, int maxValue)
{
    Random random = new Random();
    int value = random.Next(0, maxValue);

    Console.WriteLine(value);

    if (predicate(value))
    {
        Console.WriteLine("The random value met your criteria.");
    }
    else
    {
        Console.WriteLine("The random value did not meet your criteria.");
    }
}
Run Code Online (Sandbox Code Playgroud)

...

CheckRandomValueAgainstCriteria(i => i < 20, 40);
Run Code Online (Sandbox Code Playgroud)