如何创建一个接受 lambda 表达式作为参数的方法?
我使用以下代码将属性传递给 lambda 表达式。
namespace FuncTest
{
class Test
{
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
Test t = new Test();
t.Name = "My Test";
PrintPropValue(t => t.Name);
}
private static void PrintPropValue(Func<string> func)
{
Console.WriteLine(func.Invoke());
}
}
}
这不能编译。我只希望该函数能够获取属性并能够进行评估。
I am using the following code to pass a property to a lambda expression.
namespace FuncTest
{
class Test
{
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
Test t = new Test();
t.Name = "My Test";
PrintPropValue(t => t.Name);
}
private static void PrintPropValue(Func<string> func)
{
Console.WriteLine(func.Invoke());
}
}
}
This does not compile. I just want the function to be able to take property and be able to evaluate.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Func
没有任何参数 - 但您的 lambda 表达式有。目前尚不清楚您是否真的想要一个
Func
- 在这种情况下,您需要传入一个Test
实例当您调用委托时 - 或者您是否需要一个Func
来捕获 Test 的特定实例。对于后者:A
Func<string>
doesn't have any parameters - but your lambda expression does.It's not clear whether you really want a
Func<Test, string>
- in which case you'll need to pass in an instance ofTest
when you invoke the delegate - or whether you want aFunc<string>
which captures a particular instance of Test. For the latter: