私はシングルトンパターンを理解しています。私は実際にSingleObject()
コンストラクタを呼び出しているかを理解することはできませんよシングルトンパターン - オブジェクトの作成
class Program
{
static void Main(string[] args)
{
SingleObject objtemp = SingleObject.getInstance();\
objtemp.showMessage();
}
}
SingleObject.cs
class SingleObject
{
static SingleObject obj = new SingleObject();
private SingleObject()
{
}
public static SingleObject getInstance()
{
return obj;
}
public void showMessage()
{
Console.WriteLine("Hello Message");
}
}
:私はここのコード
のProgram.csの小片を書かれていますか? getInstance()
メソッドを呼び出すと、インスタンスが正しく返されますか?
Singletonパターンに取得するための最良の方法は、このスレッドを読むことです:ときに最初に使用/タッチ/アクセスhttp://csharpindepth.com/Articles/General/Singleton.aspx –
静的メンバーは自動的に初期化されます静的クラス – Chris
スタティックSingleObject obj = new SingleObject(); //これはフィールドです。実行時環境によって、クラスが使用される前にフィールドの初期化が行われます(実装が定義されています)*いつか*。編集:これは問題(フィールド初期化子からコンストラクタを呼び出す)ことができると思う - コンストラクタはすべてのフィールドが初期化されていると仮定することができますが、 'obj'の後に初期化されるフィールドが多い場合は宣言された順に初期化されます。 – ABuckau