using System; namespace DwarfCorp { public struct NeverNull where T: class { private T _Value; public T Value => _Value; public NeverNull(T _Value) { if (_Value == null) throw new InvalidOperationException(); this._Value = _Value; } public static implicit operator NeverNull(T _Value) { return new NeverNull(_Value); } public static implicit operator T(NeverNull _Value) { return _Value.Value; } } }