【发布时间】:2011-07-03 21:36:48
【问题描述】:
每当我深入研究反射器时,我都会遇到没有来源的extern 方法。我在http://msdn.microsoft.com/en-us/library/e59b22c5(v=vs.80).aspx 阅读了msdn 文档。我从那篇文章中得到的是必须注入带有extern 修饰符的方法。我将其解释为它的工作原理类似于抽象工厂模式。我还注意到我从未见过非静态外部方法。静态声明是必需的吗(我可以看到这有什么意义)?我仍然在这里猜测,我不确定它实际上是如何工作的。在我看来,编译器必须识别某些减轻处理的属性,但除了我从 MSDN 示例中遇到的 MethodImplAttribute 和 DllImportAttribute 之外,我不知道这些属性是什么。有人如何利用extern 属性?它说,在许多情况下,这可以提高性能。另外,我将如何查看extern 方法的来源,例如Object.InternalGetEquals()?
【问题讨论】:
-
MemberwiseClone().Net 中System.Object类的方法是extern但不是static。 -
当外部方法包含
DllImport属性时,方法声明还必须包含静态修饰符。
标签: c# .net performance extern modifier