Pull to refresh

Нужен ли C#-у «state»?

Reading time1 min
Views4.6K
Ребята, это скорее приглашение к конструктивному обсуждению, чем статья. Столкнулся с тем, что в 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


Ребята, хочу спросить ваше мнение. Как считаете, будет ли такой инструмент полезен в разработке?
Tags:
Hubs:
Total votes 22: ↑3 and ↓19-16
Comments12

Articles