/// <summary> /// Tries to get a reader, returning a success <see langword="bool"/> instead of throwing /// </summary> /// <param name="reader">The reader, if it was found</param> /// <typeparam name="T">The type to get the reader for</typeparam> public bool TryGet <T>([MaybeNullWhen(false)] out DelayedReader <T> reader) where T : notnull { if (TryGet(typeof(T), out var obj)) { reader = (DelayedReader <T>)obj; return(true); } reader = null; return(false); }
/// <summary> /// Creates an instance of <see cref="DelayedTypedFileHandle{T}"/> /// </summary> /// <param name="handle">The raw file handle to deserialize</param> /// <param name="reader">The delayed reader responsible for deserialization</param> public DelayedTypedFileHandle(IFileHandle handle, DelayedReader <T> reader) : base(handle, reader) { }
/// <summary> /// Adds a reader to the collection /// </summary> /// <param name="reader">The reader to add</param> /// <typeparam name="T">The type the reader is responsible for</typeparam> public void Add <T>(DelayedReader <T> reader) where T : notnull { Add(typeof(T), reader); }