C# 昂贵的方法调用?Assembly.GetEntryAssembly() 和 Assembly.GetCallingAssembly()

sup*_*cal 4 c# reflection

我刚看到这行 C# 代码,我想知道它是否很昂贵

Assembly assembly = useEntryAssembly ? Assembly.GetEntryAssembly() : Assembly.GetCallingAssembly();
Run Code Online (Sandbox Code Playgroud)

Mik*_*son 5

除非你经常执行这样的调用,否则成本相当低,我不会担心。

在我的机器上Assembly.GetEntryAssembly(),第一次需要 164 个滴答声,下一次在调试模式下随机运行需要 7 个滴答声。如果没有深入使用 Reflector,它似乎正在缓存调用。

我的机器上每秒有 2597734 个滴答声,所以 164 对 7 仍然不重要。