c# - Assembly.GetExecutingAssembly() 和 typeof(program).Assembly 之间的区别

标签 c# c#-4.0

Assembly.GetExecutingAssembly()typeof(program).Assembly 有什么区别?

最佳答案

假设 program 在执行程序集中,它们应该返回相同的值。但是,typeof(program).Assembly 应该有更好的性能,因为 Assembly.GetExecutingAssembly() 执行堆栈遍历。在我机器上的微型基准测试中,前者大约需要 20ns,而后者大约慢 30 倍,大约 600ns。

如果您控制所有代码,我认为您应该始终使用 typeof(program).Assembly。如果您提供了其他人可以构建到他们的程序集中的源代码,您将需要使用 Assembly.GetExecutingAssembly()

关于c# - Assembly.GetExecutingAssembly() 和 typeof(program).Assembly 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15407340/

相关文章:

c# - 无法在 WPF 的 DataTemplate 中为 TextBox 设置前景

c# - ExecuteScalar 对于查询 "grant connect,resource to user"返回 null。为什么?

xml - 如何使用重复的 XMLNodes 反序列化此 xml

c# - 我不断收到输入字符串的格式不正确的信息

c# - DNX 核心 5.0 错误 CS1061 : 'SqlDataReader' does not contain a definition for 'Close'

c# - 如何使用 WHERE 条件显示记录

c# - mysql查询需要5分钟以上

c# - 在单行语句中删除包含某个单词/字符串的数组中的元素

c# - 查询队列和线程安全

c# - 使用动态关键字转换泛型类型是否会导致装箱?