44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
/* Одиночка
|
||
Гарантирует что класс имеет только
|
||
один экземпляр и представляет глобальную
|
||
точку доступа к нему
|
||
*/
|
||
|
||
class Program
|
||
{
|
||
static void Main()
|
||
{
|
||
#region Пример №1 - базовое
|
||
(new Thread(() =>
|
||
{
|
||
Console.WriteLine(GameHistory.Instance.History[1]);
|
||
})).Start();
|
||
Console.WriteLine(GameHistory.Instance.History[0]);
|
||
Console.ReadKey();
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
class GameHistory
|
||
{
|
||
private static object syncRoot = new();
|
||
private static GameHistory _instance;
|
||
public static GameHistory Instance
|
||
{
|
||
get
|
||
{
|
||
lock(syncRoot)
|
||
{
|
||
if(_instance == null)
|
||
_instance = new GameHistory();
|
||
}
|
||
return _instance;
|
||
}
|
||
}
|
||
public string[] History { get; set; }
|
||
private GameHistory()
|
||
{
|
||
History = new[] { "One History",
|
||
"Two History"};
|
||
}
|
||
} |