using System.Reflection; namespace AdventOfCode.Days; public abstract class Day { public abstract int Number { get; } public abstract string Name { get; } protected string Input { get; private set; } = null!; public abstract void RunPart1(bool display = true); public abstract void RunPart2(bool display = true); public void ReadInput() { using var inputStream = Assembly.GetExecutingAssembly() .GetManifestResourceStream($"AdventOfCode.Inputs.Day{Number}.txt")!; Input = new StreamReader(inputStream).ReadToEnd(); } public override string ToString() { return $"Day {Number}: {Name}"; } }