访问修饰符会影响性能吗?

8

C#中的访问修饰符会影响性能吗?


4
没有任何相关的程度。关注更重要的事情,比如你的类的设计,而不是像这样的性能“优化”。 - Cody Gray
1个回答

9
不,访问修饰符在运行时不会被考虑执行。只有在使用反射并查询程序集的元数据时,它们才会在编译后发挥作用。
想象一下,访问修饰符就像混凝土模板。当混凝土还湿润时,它们被放置在其上,为湿混凝土提供形式和边界。一旦混凝土干燥,这些模板就被移除,因为它们不再需要。访问修饰符是您未编译代码的混凝土模板 - 一旦代码已编译,访问修饰符就不再起作用(即使它们是发出的 IL 的一部分)。
编辑:也许“不再起作用”有点含糊。我的意思是,编译器的工作就是确保所有访问修饰符都得到适当的尊重,不会发生任何违规行为。运行时(至少 Microsoft 的 CLR - 其他运行时可以自由实现)相信编译器已经完成了它的工作,不需要进行进一步的检查。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接