nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

C# シングルトンパターンの学習

C#で簡単なシングルトンパターンを記載してみます。

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {

            SingletonClass instance = SingletonClass.Instance;
            SingletonClass instance2 = SingletonClass.Instance;

            if (instance == instance2)
            {
                Console.WriteLine("instance == instance2");
            }

            instance.DoSomething();
            instance2.DoSomething();

            Console.ReadLine();
        }
    }

    public sealed class SingletonClass
    {
        private static SingletonClass m_Instance;

        private SingletonClass()
        {
            Console.WriteLine("Created instance.");
        }

        public static SingletonClass Instance
        {
            get
            {
                if (m_Instance == null)
                {
                    m_Instance = new SingletonClass();
                }

                return m_Instance;
            }
        }

        public void DoSomething()
        {
            Console.WriteLine("DoSomething is called.");
        }
    }
}

実行結果

f:id:nprogram:20171009223243p:plain