LoginSignup
0
1

More than 3 years have passed since last update.

C#学習 -シングルトン-

Posted at

C#学習中のため、学習内容をメモしていく。
間違いやアドバイスがあればコメントからよろしくお願いします。

シングルトン

クラスがロードされた初回に一度だけインスタンスが生成され、以降のインスタンスは生成されない。

コード例

   class MySingleton
    {
        // アプリで保持すべき唯一のインスタンスをクラスフィールドとして保存
        private static MySingleton instance = new MySingleton();

        // コンストラクターをprivate宣言することで1度だけしかインスタンスが生成されない
        private MySingleton()
        {
            Console.WriteLine("シングルトンの生成");
        }

        // 唯一のインスタンスを取得するプロパティ
        public static MySingleton Instance
        {
            get { return instance; }
        }

        private string _str;

        public string str
        {
            get { return _str; }
            set { _str = value; }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var obj = MySingleton.Instance;
            obj.str = "シングルトン1";

            var obj2 = MySingleton.Instance;

            // インスタンスは1つしか生成されないため、dataの内容は「シングルトン1」となる
            Console.WriteLine(obj2.str);
        }
    }

参考した本

独習C#

おわり。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1