C#在编译时断言Func参数是静态的

时间:2015-03-26 11:17:06

标签: c# compilation

在编译时有没有办法断言参数Func是静态的?

这似乎是编译器可以轻松检查而不是依赖于运行时故障的东西。

我意识到它可以在运行时用[arg] .Method.IsStatic

完成

干杯

1 个答案:

答案 0 :(得分:1)

  

这似乎是编译器可以轻松检查而不是依赖于运行时故障的东西。

是的,它绝对可以 - 但只有在语言中有某些东西提示它这样做。在C#中没有,这是一个非常奇怪的要求,IMO,以及一个与lambda表达不能很好地配合的。

使用VS 2015,您可以轻松编写Roslyn CodeDiagnostic来发现这一点并发出警告或错误。您可能希望使用要识别的诊断属性来装饰参数,然后检查所有呼叫者。