Dan*_*iel 1 c# delegates c#-3.0
如果你在一个方法中并传入一个匿名委托,那么'return'关键字是否会为匿名委托返回一个值,还是会返回该函数?我知道在ruby中,他们使用'next'来实现块内的这种类型的功能.
这是一个例子:
public bool X()
{
AList.Where(x =>
{
if (x.val == 1) return true;
....
return someBool;
}
...
return anotherBool
}
Run Code Online (Sandbox Code Playgroud)
'return'关键字是否为匿名委托返回一个值,还是返回该函数?
它从匿名委托返回.
.Where()没有返回bool,你可能会尝试.Any()
public bool X()
{
bool result = AList.Any(x => x.val == 1);
return result;
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用捕获的变量:
bool y = false;
Func<int, bool> checker = x =>
{
if (x == 1)
{
return true;
}
y = true;
return false;
}
AList.Where(checker).ToList();
Run Code Online (Sandbox Code Playgroud)