Example #1
0
        static void Main()
        {
            Console.WriteLine("Первое обращение к экземпляру BigObject...");
            // Создание объекта происходит только при этом обращении к объекту.
            Console.WriteLine(BigObject.GetInstance());

            Console.WriteLine("Второе обращение к экземпляру BigObject...");
            Console.WriteLine(BigObject.GetInstance());

            // Delay.
            Console.ReadKey();
        }
Example #2
0
        // Метод возвращает экземпляр BigObject, при этом он создаёт его, если тот ещё не существует.
        public static BigObject GetInstance()
        {
            // Исключение возможности создания двух объектов в многопоточном приложении.
            if (instance == null)
            {
                lock (typeof(BigObject))
                {
                    if (instance == null)
                    {
                        instance = new BigObject();
                    }
                }
            }

            return(instance);
        }