Ребята, это скорее приглашение к конструктивному обсуждению, чем статья. Столкнулся с тем, что в C# как таковом нет понятия «состояния», а точнее — нет встроенной удобной возможности запомнить состояние сложного объекта в определенный момент, чтобы потом легко сравнивать, или другие объекты такого же типа находятся в таком же состоянии? Ниже я предлагаю пример — как бы это могло выглядеть.
Ребята, хочу спросить ваше мнение. Как считаете, будет ли такой инструмент полезен в разработке?
Какой-нибудь пользовательский класс
class Test
{
[StateAtt(StateCompareOption.AnyButNotThis)] // любое значение, кроме указанного
public double somefiled;
public double anothersomefiled; // этому полю атрибут не присвоен - оно в сравнении не участвует
[StateAtt(StateCompareOption.ExactlyLikeThis)] // только такое значение
public string StringProp { get; set; }
public int IntProp { get; set; } // этому свойству атрибут не присвоен - оно тоже игнорируется
public Test(string StringProp, int IntProp, double somefiled, double anothersomefield)
{
this.StringProp = StringProp;
this.IntProp = IntProp;
this.somefiled = somefiled;
this.anothersomefiled = anothersomefield;
}
}
Test a1 = new Test("text", 1, 50.4251, 34);
State<Test> state = State<Test>.CreateState(a1);
Test a2 = new Test("text", 1, 50.4252, 34);
state.IsInTheSameState(a2).ToString().ToConsole(); // вернет true
Ребята, хочу спросить ваше мнение. Как считаете, будет ли такой инструмент полезен в разработке?