C# 在编译时断言 Func 参数是静态的
C# Assert at compile time Func argument is static
有没有办法在编译时断言参数 Func 是静态的?
这似乎是编译器可以轻松检查的内容,而不是依赖于运行时故障。
我意识到它可以在运行时使用 [arg] 完成。Method.IsStatic
干杯
This seems like something the compiler could easily check rather than relying on runtime failure.
是的,它绝对可以——但前提是语言中有某些东西可以提示它这样做。在 C# 中没有 - 这是一个非常奇怪的要求,IMO,并且不能很好地与 lambda 表达式配合使用。
使用 VS 2015,您可以轻松编写 Roslyn CodeDiagnostic 来发现这一点并发出警告或错误。您可能想用一个属性来修饰参数以便诊断发现,然后检查所有调用者。
有没有办法在编译时断言参数 Func 是静态的?
这似乎是编译器可以轻松检查的内容,而不是依赖于运行时故障。
我意识到它可以在运行时使用 [arg] 完成。Method.IsStatic
干杯
This seems like something the compiler could easily check rather than relying on runtime failure.
是的,它绝对可以——但前提是语言中有某些东西可以提示它这样做。在 C# 中没有 - 这是一个非常奇怪的要求,IMO,并且不能很好地与 lambda 表达式配合使用。
使用 VS 2015,您可以轻松编写 Roslyn CodeDiagnostic 来发现这一点并发出警告或错误。您可能想用一个属性来修饰参数以便诊断发现,然后检查所有调用者。