CLR が静的クラスを処理する方法を説明できる人はいますか? CLR は、静的クラスを内部で処理するためのシングルトン インスタンスを 1 つ作成しますか? そうでない場合、なぜ C# に静的コンストラクターがあるのでしょうか? (私の理解では、コンストラクターはクラスのインスタンス化にのみ使用します)
1240 次
2 に答える
4
まず、CLR には静的クラスがありません。CLR は静的クラスについて何も知りません。C#の特徴です。
abstract
静的クラスはクラスと同様にコンパイルされますsealed
。インスタンスabstract
化をsealed
防ぎ、継承を防ぎます。
静的クラスは特別なものではなく、すべてのメンバーが静的な単純なクラスです。
CLR は、静的クラスを処理するために 1 つのシングルトン インスタンスを内部的に作成しますか?
いいえ、抽象的でインスタンス化できません。
そうでない場合、なぜ C# に静的コンストラクターがあるのでしょうか?
静的コンストラクターは、型が最初に参照またはインスタンス化されるときに呼び出されます。クラスの静的メンバーを初期化するために使用されます。
于 2014-09-03T11:43:45.493 に答える
2
static
コンストラクターは、型が最初に参照されるときに呼び出されます。コンストラクタstatic
を持つためにクラスである必要はありません。static
static
CLR は、クラスのシングルトン インスタンスを作成しません。static
初期化された後でも、変数はメモリに保持されます。
于 2014-09-03T11:39:59.733 に答える