public SettableLazy(T value, Func <T> factory, SettableLazyThreadSafetyMode mode) { if (null == factory) { throw new ArgumentNullException("factory"); } if (!Enum.IsDefined(typeof(SettableLazyThreadSafetyMode), mode)) { throw new ArgumentOutOfRangeException("mode"); } _lock = (_mode = mode) == SettableLazyThreadSafetyMode.None ? null : new object(); _value = value; _factory = factory; _isCreated = true; }
public SettableLazy(T value, SettableLazyThreadSafetyMode mode) : this(value, () => Activator.CreateInstance <T>(), mode) { }
public SettableLazy(Func <T> factory, SettableLazyThreadSafetyMode mode) : this(default(T), factory, mode) { _isCreated = false; }