Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, catbert, Вы писали:
C>>Здравствуйте, Аноним, Вы писали:
А>>>при изенении k автоматически перевычисляется i.
C>>а если і изменить?
А>если есть set то просто установиться значение. Если нет то и выполнить эту операцию нельзя
Ага, то есть два случая.
1) Нету сеттера. Тогда задача решается штатными методами:
class Foo
{
K : int { get; set; }
I : int { get { K + 1} }
}
2) Есть сеттер. В этом случае I, я так понимаю, будет равно K + 1, пока ему не присвоят какое-то значение. Это довольно хитрая семантика, такое на практике случается наверное редко, поэтому в язык/стандартную библиотеку пихать его не имеет смысла.
В единичном случае, это должно выглядеть так:
class Foo
{
K : int { get; set; }
I : int {
mutable _value : int?
get { _value ?? K + 1 }
set { _value = value }
}
}
Естественно, если таких свойств много, можно и макрос написать соответствующий.