-1

我正在做作业有一个问题。该作业让我添加了一个应该是读/写的私有属性(私有字符串历史记录)。我可以做到这一切。然后说明说“确保它不能被覆盖 - 写入它应该在字符串中添加一行。”

如何在不覆盖任何内容的情况下向字符串添加一行?

4

2 回答 2

6

听起来像是一个措辞不好的问题。你是对的:一个变量不能改变它的状态但同时保持它的状态。我猜他们的意思是这样的:

    private string _SafeString;
    public string SafeString
    {
        get { return _SafeString; }
        set 
        { 
            _SafeString += ("\n" + value); 
        }
    }

因此,对字符串的“分配”实际上会附加到原始字符串,而不仅仅是分配。

于 2013-03-29T23:18:15.023 回答
1

您对属性的定义更像是C# 中的字段属性。你应该看看属性,当一个值被分配(或从)一个字段时,它将允许你执行各种自定义逻辑。

private string history;
public string History
{
    get { return history; }
    set
    {
        // Do something fancy with 'value', e.g:
        history = history + "\n" + value;
    }
}
于 2013-03-29T23:18:36.950 回答