Есть ли какой-нибудь вычислительный механизм для C #, который может автоматически пересчитывать зависимые поля при изменении значения?
Позвольте мне вольный стиль для секунду, я представляю себе что-то вроде этого ...
Field<double> quantity = Field.Create<double>("Quantity");
Field<double> unitCost = Field.Create<double>("Unit Cost");
Field<double> total = Field.Create<double>("Total");
total.Calculation((q,uc) => q * uc, quantity, value);
// would have signature something like this:
// void Calculation<TR,T1,T1>(Func<TR,T1,T2>, Field<T1>, Field<T2>)
Это установило бы поля, которые автоматически распространяют зависимые значения.
quantity.Value = 5.0;
unitCost.Value = 1.5;
Assert.That(total.Value, Is.EqualTo(7.5));
Очевидно, это простой пример, конечное использование будет гораздо больше похоже на вычисления сложная электронная таблица.
Если подумать, было бы замечательно, если бы поле / ячейки поддерживали уведомление об изменении.