Вопрос по Code Contracts
От: 0K Ниоткуда  
Дата: 27.07.10 21:58
Оценка:
Кто может пояснить на примере. Есть программа:

using System.Diagnostics.Contracts;

namespace ConsoleApplication16
{
    class Program
    {
        public class Order
        {
            private decimal _orderPrice;

            [ContractInvariantMethod]
            private void objectInvariant()
            {
                Contract.Invariant(_orderPrice >= 0, "Цена не может быть меньше нуля.");
            }
        }

        static void Main(string[] args)
        {
            var o = new Order();
        }
    }
}


При запуске компиляции Warning: Warning 2 CodeContracts: ConsoleApplication16.Program+Order.#ctor()[0x6]: invariant unproven: _orderPrice >= 0 (Цена не может быть меньше нуля.) 1 1 ConsoleApplication16


Вроде _orderPrice приватная, внутри класса не вызывается вообще и всегда >= 0. Как нужно доказать компилятору, что она всегда >=0?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.