Контракты кода: Как я заявляю в постусловии, что значение поля/свойства не изменилось?

Я лучше всего просто покажу с примером кода, что я хотел бы выполнить?

class SomeClass
{
    public int SomeProperty;

    public void SomeOperation()
    {
        Contract.Ensures( "SomeProperty's value has not changed." );
                     //   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                     //    How can I write this post-condition?
    }
};

(Строка передала Contract.Ensures() конечно, просто заполнитель для реального выражения постусловия.)

Как я могу сделать это? Был бы Contract.OldValue<>() иметь какое-либо применение здесь?

7
задан stakx supports GoFundMonica 28 January 2010 в 12:12
поделиться

1 ответ

Contract.oldValue должно быть достаточно:

Contract.Ensures(this.SomeProperty == Contract.OldValue(this.SomePropety));
5
ответ дан 7 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: