当您在需要 Expression 的地方使用自定义方法时,如何创建 C# 编译 错误?
确实,从技术上讲,包含对自定义方法的调用的 Lambda 表达式也是表达式。但由于 LINQ to SQL、LINQ to JSON 等表达式的使用者不期望它,它们会抛出运行时错误。
可以做些什么来让编译器知道像 LINQ to SQL 等框架期望什么,什么是不允许的。
最佳答案
无可奈何,原因如下:
- 包含方法调用的 lambda 表达式 (!) 仍然是表达式
- 并非所有的方法调用都是非法的。一些方法被理解并正确翻译。因此,即使您找到一种方法只允许不调用方法的 lambda 表达式,您也会禁止所有方法调用,甚至是有效的方法调用。
关于c# - 当您在需要 Expression 的地方使用自定义方法时,如何创建 C# 编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552788/