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#
おわり。