Так как каждый год отличается, но на основе предыдущего, можно создать Interfaces
, который будет определять ( версия ) года.
Можно создавать интерфейсы независимо от различий, но суть в том, что они версионируют данные .
Таким образом вы создадите версии данных и сможете использовать / отсортировать его соответственно без изменений в текущем коде, просто добавляя новый код каждый год.
Пример
Два интерфейса и второй наследуют от первого:
public interface IYear1
{
int Test1 { get; set;}
}
public interface IYear2 : IYear1
{
int Test2 { get; set;}
}
Затем производные классы:
public class Year1 : IYear1
{
public int Test1 { get; set;}
}
public class Year2 : Year1, IYear2
{
public int Test2 { get; set; }
}
Затем в коде мы можем создать / определить, какой год обрабатывается:
var year = new Year2() { Test1 = 1, Test2 = 2};
if (year is IYear2)
Console.WriteLine("Year 2 Found");
if (year is IYear1)
Console.WriteLine("Year 1 Found");
В результате мы определили две версии, которые используются:
Year 2 Found
Year 1 Found