search
LoginSignup
73

More than 5 years have passed since last update.

posted at

updated at

C# で シングルトンパターン

C# で シングルトンパターン

時々使うけど、すぐ忘れるのでメモ。

デザインパターンのうち、Singletonパターン(1つしかインスタンスを生成しない)

コンストラクタのスコープを private に変更し、
GetInstance()メソッドでインスタンスを取得するようにするのが肝です。

sample_singleton.cs
// Singletonパターン
public sealed class SingletonClass
{
    private static SingletonClass _singleInstance = new SingletonClass();

    public static SingletonClass GetInstance()
    {
        return _singleInstance;
    }

    private SingletonClass()
    {
        //TODO: initialization
    }
}

参考

追記

SharpDevelopなら、新規作成→(中略)→シングルトンクラス を選択すると、
一瞬で以下のように生成してくれるじゃないですかーやだ恥ずかしー(赤面)

SamplaSingletonClass.cs
using System;

namespace SampleLog4Net
{
    /// <summary>
    /// Description of ClassNullLogger.
    /// </summary>
    public sealed class ClassNullLogger
    {
        private static ClassNullLogger instance = new ClassNullLogger();

        public static ClassNullLogger Instance {
            get {
                return instance;
            }
        }

        private ClassNullLogger()
        {
        }
    }
}

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
What you can do with signing up
73