使用System;
f.involk()失败,因为它需要一个字符串参数,如何更正代码?
namespace LamdaTest
{
class Program
{
static void Test(Func<string,bool> f)
{
**f.Invoke();**
}
static bool GetItem(string s)
{
Console.WriteLine("getItem");
if (s == "123") return true;
else return false;
}
static void Main(string[] args)
{
Test((string s)=> GetItem("123"));
}
}
}
答案 0 :(得分:4)
尝试更换:
**f.Invoke();**
使用:
f(null);
但是,如果您不使用string
参数,则应改为使用委托类型Func<bool>
或Action
。
答案 1 :(得分:1)
试试这个:
class Program
{
static void Test(Func<string, bool> f, string s)
{
f.Invoke(s);
}
static bool GetItem(string s)
{
Console.WriteLine("getItem");
if (s == "123") return true;
else return false;
}
static void Main(string[] args)
{
Test(GetItem, "Test String");
}