1

readonlyAction 和 Method 都必须定义一次,但假设我将多次分配给 variableAction:

Action variableAction;
readonly Action readonlyAction;
void Method() {}

哪个更适合任务、只读委托或方法?我认为在一种情况下可能会发生一些优化,但也许还有语义问题需要考虑?

variableAction = readonlyAction;
variableAction = Method;
4

1 回答 1

0

如果您是设置方法或操作(预编译)的人(如果您不这样做,您可能不会问这个),那么我会假设在性能方面没有很大差异。但是,如果你想要确切的答案,你应该看看 IL。无论如何,编译器可能只是为静态操作创建一个方法或内联。话虽如此,那时我会更关注可读性。试着想象一个新的开发者试图阅读代码,如果一种方式使它更难阅读,那么使用另一种方式......我个人可能会倾向于一种方法。可能应该为以下场景保留操作:

否则,Action可能是在构造时传入的东西,所以你必须使用,Action因为无论如何你直到运行时才知道实现。但是,我怀疑这就是你问的原因,因为Method无论如何在这种情况下使用是不可能的。

于 2013-02-27T14:38:19.543 回答