Я работаю над кодом, написанным кем-то другим, и застревает из-за проблемы, которая, как я думаю, имеет отношение к методу setter. Код ниже пытается присвоить истинное значение публичному элементу, доступ которого контролируется элементом setter.C# Setter не назначает
while (true)
{
currentN = currentN.Pass(d);
if (currentN.NID == aimedID)
{
currentN.IsValid = true;
break;
}
}
Когда я отладки кода, это невероятно для меня, чтобы увидеть даже в тех случаях, он входит в если условие, оно не присваивает истинное значение для currentNode.IsValid переменной. Он остается таким, каким он был до (ложным).
методы геттер/сеттер приведены ниже:
public bool IsValid
{
get { return Branches == null || Branches.Length == 0; }
set {}
}
Как я уже говорил выше, я думаю, что это имеет какое-то отношение к методу сеттер. Если я не пишу ничего для заданной части, я не могу присвоить значение переменной IsValid. Если я напишу set {this.IsValid = value}, он завершит ошибку stackoverflow. Назначение значения для IsLeaf не должно быть таким сложным. Наверное, мне не хватает точки, хотя я проверил несколько руководств по методам getter/setter.
Как изменить способ установки, чтобы я мог присвоить значение свойству IsValid?
Спасибо.
Вы понимаете смысл геттера здесь? Не понимая, что любой ответ будет всего лишь примером программирования культа груза. Это можно «решить», но если узел не должен быть действительным с ветвями, то что-то другое сломается. –
@AndreyShchekin Я действительно понял, увидев ответ. Я переделал остальных соответственно. – rooter