我在工作中看到了这种代码:
class FooPlugin : IPlugin // IPlugin is a Microsoft CRM component, it has something special about it's execution
{
static FooPlugin()
{
SomeObject.StaticFunction(); // The guy who wrote it said it's meaningful to this question but he can't remember why.
}
}
Run Code Online (Sandbox Code Playgroud)
知道构造函数上的静态修饰符是什么意思,为什么在这种情况下它是必需的?
这是类的静态初始化.
当您使用方法,字段,属性或类的任何其他内容时,它将被调用.换句话说,它将在您第一次使用该类时调用.
请参阅MSDN上的静态构造函数
您还可以在此处初始化静态内容.
在你的例子中,似乎任何写过的SomeObject.StaticFunction()人都希望在人们使用之前调用一次FooPlugin,可能所以在使用之前它会被初始化FooPlugin.
请注意,使用它时会有一些性能损失,而visual studio(使用代码分析)可以让您知道最好内联初始化静态字段.
请参阅CA1810:在MSDN上初始化内联的引用类型静态字段
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |