c# - 跨不同程序集的函数参数

标签 c# lambda

假设我有一个函数 DoStuff这是在程序集 A.dll 中定义的。这个函数需要一个 Func<T>范围。我在 B.dll 中将此函数称为 DoStuff(() => ...) .

Func<T> 在哪里评价?它似乎在 B.dll 中,但我希望它在 A.dll 中。如果 Func<T> 会发生什么需要外部引用?我是否被迫将它们包含在 B.dll 中?我可以强制它在 A.dll 中执行吗?

最佳答案

lambda 被编译到 B 并在那里执行。

您可以在此处阅读有关其工作原理的更多信息:What are C# lambda's compiled into? A stackframe, an instance of an anonymous type, or?

关于c# - 跨不同程序集的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35179263/

相关文章:

C#动态获取类中的变量名和值

c# - LINQ GroupBy,同时保留所有对象字段

Python 嵌套 lambda 列表仅执行 lambda 列表的最后一个元素

c# - 以编程方式使用 Sandbox 的 azure CreateNotificationHub

c# - 如何让这个异常处理代码遵守DRY原则?

c# - 使用 Windows 服务实现预定作业的最佳方法是什么

java - 使用 java 8 lambda 将映射转换为字符串

c# - 如何调试包含 ASP classic、ASP.NET、C# 和 VB 的项目?

c# - C# 中的简写条件类似于 SQL 'in' 关键字

Java lambda 表达式 : Copy nodes from list to a new list