| 1234567891011121314151617181920212223242526272829303132333435363738394041 | using System;namespace GFGGame{    // 替代 System.Lazy<T> 的简单实现    // 替代 System.Lazy<T> 的简易实现    public class SimpleLazy<T>    {        private readonly Func<T> _initializer;        private T _value;        private bool _isInitialized;        private readonly object _lock = new object();        public SimpleLazy(Func<T> initializer)        {            _initializer = initializer ?? throw new ArgumentNullException(nameof(initializer));        }        public T Value        {            get            {                if (!_isInitialized)                {                    lock (_lock)                    {                        if (!_isInitialized)                        {                            _value = _initializer();                            _isInitialized = true;                        }                    }                }                return _value;            }        }        public bool IsValueCreated => _isInitialized;    }}
 |