2 ookop1 ookop1 于 2016.01.19 19:51 提问

请看一个大神写的lambda表达式,不用linq请问怎么调用
Func<int, bool> MyAnd(Func<int, bool> f1, Func<int, bool> f2)
{
return x => f1(x) && f2(x);     
}

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.19 19:57

直接调用也可以:
bool b1 = MyAnd(x => x < 10, x => x % 2 == 0)(4);
bool b2 = MyAnd(x => x < 10, x => x % 2 == 0)(12);

enpterexpress
enpterexpress   2016.01.19 21:47
            int[] arr = { 1, 2, 3, 4, 5, 8, 9, 11, 12, 14 };
            Func<int, bool> f1 = x => x < 10;
            Func<int, bool> f2 = x => x % 2 == 0;
            Func<int, bool> myand = x => f1(x) && f2(x);
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine(arr[i]+" "+ myand(i));
            }
lrgdongnan
lrgdongnan   2016.01.19 22:36

其实Lambda表达式是由匿名函数的语法发展而来,编译器会将他解析成一个匿名函数,其用处主要是用于赋给一个委托;你可以将Lambda表达式看作一个匿名函数
,你想想匿名函数怎么调用呢?谁也不会定义一个匿名函数然后去直接调用吧!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!