首页 / C# / 有没有办法直接使用C#方法作为代理?
有没有办法直接使用C#方法作为代理?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了有没有办法直接使用C#方法作为代理?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含839字,纯文字阅读大概需要2分钟。
内容图文
这更像是一个C#语法问题,而不是一个需要解决的实际问题.假设我有一个将委托作为参数的方法.假设我定义了以下方法:
void TakeSomeDelegates(Action<int> action, Func<float, Foo, Bar, string> func)
{
// Do something exciting
}
void FirstAction(int arg) { /* something */ }
string SecondFunc(float one, Foo two, Bar three){ /* etc */ }
现在,如果我想用FirstAction和SecondFunc作为参数调用TakeSomeDelegates,据我所知,我需要做这样的事情:
TakeSomeDelegates(x => FirstAction(x), (x,y,z) => SecondFunc(x,y,z));
但是有没有更方便的方法来使用适合所需委托签名的方法而无需编写lambda?理想情况下像TakeSomeDelegates(FirstAction,SecondFunc),虽然显然不能编译.
最佳答案:
您正在寻找的是“method groups”.有了这些,您可以替换一行lamdas,例如:
是:
TakeSomeDelegates(x => firstAction(x), (x, y, z) => secondFunc(x, y, z));
用方法组替换后:
TakeSomeDelegates(firstAction, secondFunc);
内容总结
以上是互联网集市为您收集整理的有没有办法直接使用C#方法作为代理?全部内容,希望文章能够帮你解决有没有办法直接使用C#方法作为代理?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。