Пример #1
0
 /// <summary>
 /// 一意なインスタンスを取得する。
 /// </summary>
 /// <returns></returns>
 public static UseSingleton GetInstance()
 {
     lock (lockObj)
     {
         if (instance == null)
         {
             instance = new UseSingleton();
         }
         return(instance);
     }
 }
Пример #2
0
    private void ExampleSingleton()
    {
        var notUse1 = new NotUseSingleton();

        Console.WriteLine($"{typeof(NotUseSingleton)}のインスタンスID: {notUse1.GetInstanceID()}");
        // 同じインスタンスのIDを参照しているつもり。
        var notUse2 = new NotUseSingleton();

        Console.WriteLine($"{typeof(NotUseSingleton)}のインスタンスID: {notUse2.GetInstanceID()}");
        Console.WriteLine($"Same instance?: {notUse1 == notUse2}");

        var use1 = UseSingleton.GetInstance();

        Console.WriteLine($"{typeof(UseSingleton)}のインスタンスID: {use1.GetInstanceID()}");
        // UseSingletonに一意が保障されたインスタンスが存在するのでそれを取得
        var use2 = UseSingleton.GetInstance();

        Console.WriteLine($"{typeof(UseSingleton)}のインスタンスID: {use2.GetInstanceID()}");
        Console.WriteLine($"Same instance?: {use1 == use2}");
    }