在 C# 类中,private
、protected
、public
和 internal
方法的性能有什么不同吗?我对消耗更多处理器时间或 RAM 感兴趣。
最佳答案
我不知道正常调用有任何性能差异;当通过动态调用或反射访问时,更受限制的访问可能需要更多的工作,因为调用者可能需要更仔细地验证。在正常的 JIT 编译情况下,访问可以由 CLR 验证一次,然后视为理所当然。我猜想 JIT 编译(和 IL 验证)本身可能会因为更严格的访问而稍微慢一些 - 但我很难相信这会很重要。
这应该绝对不是决定使用哪种辅助功能的一个因素,即使不知何故存在一些我不知道的微小性能差异。如果您认为您可以通过使可访问性不同于设计的“自然”方式来获得性能优势,那么您绝对应该对前后案例进行基准测试——我怀疑您很难找到一个可以可靠地衡量差异的真实情况。
同样的建议适用于所有类型的微优化:它几乎从来都不是一个好主意,并且应该绝对只能在仔细测量的情况下进行。
关于c# - C# 类中私有(private)、 protected 、公共(public)和内部方法的性能有什么不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384987/