using System; namespace GFGGame { // 替代 System.Lazy 的简单实现 // 替代 System.Lazy 的简易实现 public class SimpleLazy { private readonly Func _initializer; private T _value; private bool _isInitialized; private readonly object _lock = new object(); public SimpleLazy(Func 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; } }