在编译时有没有办法断言参数Func是静态的?
这似乎是编译器可以轻松检查而不是依赖于运行时故障的东西。
我意识到它可以在运行时用[arg] .Method.IsStatic
完成干杯
答案 0 :(得分:1)
这似乎是编译器可以轻松检查而不是依赖于运行时故障的东西。
是的,它绝对可以 - 但只有在语言中有某些东西提示它这样做。在C#中没有,这是一个非常奇怪的要求,IMO,以及一个与lambda表达不能很好地配合的。
使用VS 2015,您可以轻松编写Roslyn CodeDiagnostic来发现这一点并发出警告或错误。您可能希望使用要识别的诊断属性来装饰参数,然后检查所有呼叫者。