我正在做作业有一个问题。该作业让我添加了一个应该是读/写的私有属性(私有字符串历史记录)。我可以做到这一切。然后说明说“确保它不能被覆盖 - 写入它应该在字符串中添加一行。”
如何在不覆盖任何内容的情况下向字符串添加一行?
听起来像是一个措辞不好的问题。你是对的:一个变量不能改变它的状态但同时保持它的状态。我猜他们的意思是这样的:
private string _SafeString;
public string SafeString
{
get { return _SafeString; }
set
{
_SafeString += ("\n" + value);
}
}
因此,对字符串的“分配”实际上会附加到原始字符串,而不仅仅是分配。
您对属性的定义更像是C# 中的字段或属性。你应该看看属性,当一个值被分配(或从)一个字段时,它将允许你执行各种自定义逻辑。
private string history;
public string History
{
get { return history; }
set
{
// Do something fancy with 'value', e.g:
history = history + "\n" + value;
}
}