Ребята, это скорее приглашение к конструктивному обсуждению, чем статья. Столкнулся с тем, что в 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
Ребята, хочу спросить ваше мнение. Как считаете, будет ли такой инструмент полезен в разработке?
ссылка на оригинал статьи http://habrahabr.ru/post/270099/
Добавить комментарий