Сомнительно, что хочу, чтобы вы хотите сделать, это хорошая идея. Но факт в том, что это не совсем ясно что вы хотите сделать.
У меня есть неопределенное чувство, которое вы хотите, каждый раз, когда свойство score
установлено, чтобы добавить значение к свойству ttlScore
. Если так, то уверен ... вы можете это сделать, но это ужасная идея. Использование свойства для представления этой операции будет чрезвычайно запутанным; вместо этого у вас должен быть метод, например. с именем AddScore()
, поэтому ясно, что код, который каждый раз, когда оценка передается методу, будет добавлена к текущему итогу.
Например, что-то вроде этого:
public class Bes : player
{
public int MostRecentScore { get; private set; }
public int TotalScore { get; private set; }
public int AddScore(int score)
{
this.MostRecentScore = score;
return this.TotalScore += score;
}
}
Тогда MostRecentScore
свойство еще покажет то, что самая последняя оценка была, в то время как TotalScore
свойство будет показывать текущую сумму, но члены класса дают понять, что вы должны позвонить AddScore()
, чтобы сообщить о новой оценке, и что это позаботится об обновлении обоих интересующих свойств.
Этот пример, конечно, не использует аспект вашего кода кода virtual
. Из вашего вопроса неясно, почему метод computescore()
был фактически создан виртуальным, и, вероятно, не обязательно должно быть —, если вы действительно хотите, чтобы базовый класс знал о скоринге, тогда свойства, связанные с оценкой, также присутствуют и ни один из членов не должен быть virtual
—, так что я его оставил.
Если это не касается вашего вопроса, пожалуйста, edit your question, чтобы было более ясно, что вы пытаетесь сделать. Предоставьте хороший Minimal, Complete, and Verifiable code example, который четко показывает, что вы пробовали, а также подробное и конкретное объяснение того, что делает код, и то, что вы хотите сделать.
В чем проблема с кодом? Любое исключение или неожиданное поведение? – Peter
Каждый раз, когда я помещаю данные (bes1.score = 30), значение, возвращаемое computeScore, всегда является значением, которое было недавно введено. Я ожидал увидеть общий балл. Я попробовал это, введя 3 значения. bes1.score = 10; bes1.score = 20; bes1.score = 30; Общая оценка 30; Я не знаю, что я должен делать. – KuysChan
Что вам нужно сделать, это ДОБАВИТЬ в партитуру, а не НАЗНАЧАТЬ. Как 'bes1.score = bes1.score + 10;' –