Csharp/C#教程:如何将谓词定义为函数参数分享


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

我希望能够写出一些东西

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

我猜它必须是这样的forms:

 void Start(Predicate predicate) { } 

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

谢谢

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

 static void CheckRandomValueAgainstCriteria(Predicate 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."); } } 

 CheckRandomValueAgainstCriteria(i => i < 20, 40); 

你可以这样做:

 void Start(Predicate predicate, int value) { if (predicate(value)) { //do Something } } 

你在这里调用这样的方法:

 Start(x => x == 5, 5); 

我不知道会有多大用处。 对于过滤列表这样的事情, Predicates非常方便:

 List l = new List() { 1, 5, 10, 20 }; var l2 = l.FindAll(x => x > 5); 

从设计的角度来看,传递给函数的谓词的目的通常是过滤一些IEnumerable,对每个元素进行测试的谓词,以确定该项是否是过滤集的成员。

在示例中,您最好只使用具有布尔返回类型的函数。

上述就是C#学习教程:如何将谓词定义为函数参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1023190.html

(0)
上一篇 2022年1月7日
下一篇 2022年1月7日

精彩推荐