如何在C#中实现按名称调用?
谁能告诉我如何在C#中实现按名称调用?
Can anyone tell me how I can implement Call By Name in C#?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
谁能告诉我如何在C#中实现按名称调用?
Can anyone tell me how I can implement Call By Name in C#?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
传递 lambda 函数而不是值。 C# 是急切评估的,因此为了推迟执行,以便每个站点重新评估提供的参数,您需要将参数包装在函数中。
如果您使用 .NET 4.0,则可以使用 Lazy 类获得类似(但不相同)的效果。
Lazy
会记住结果,以便重复访问时不必重新评估函数。Pass a lambda function instead of a value. C# is eagerly evaluated so in order to defer execution so that each site re-evaluates the supplied arguments you need to wrap the arguments in a function.
You can use the Lazy class if you're in .NET 4.0 to get a similar (but not identical) effect.
Lazy
memoizes the result so that repeated accesses do not have to re-evaluate the function.您可以使用反射来做到这一点:
You can do that using Reflection:
如果您的意思是这个,那么我认为最接近的等价物是代表。
If you mean this, then I think the closest equivalent would be delegates.
为什么不使用
Why not use