2013-03-29 2950 views
-1

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

如何向字符串添加一行而不覆盖任何内容?

+1

伙计们,他并没有要求任何人做他的功课。询问如何添加一条线可以帮助他解决一件事。 –

+5

@SonerGönül这是一个荒谬的非建设性的评论。或者说OP的**问题有什么问题**(不是他问这个问题的动机),还是投票并继续前进,不要只是嚷嚷一些毫无用处的东西。 (尤其是在新用户。) – millimoose

+0

我认为他在问,因为说明(如他正在呈现他们)是矛盾的。哦,我认为你的意思是“私人领域”,而不是“私人领域”。 – Tory

回答

6

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

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

这样的字符串“分配”实际上追加到原来的,而不仅仅是分配。

+3

值得一提的是,你永远不应该在真实世界的代码中这样做。 – 2013-03-29 23:18:57

+1

这也是我的理论,但这意味着这项任务是非常糟糕的措辞。 – millimoose

+0

Zoidberg绝对正确。用真实代码做这件事会让开发人员非常困惑,因为他们不知道SafeString属性除了分配字符串之外不会做其他事情。 –

1

属性的定义更像或C#财产。你应该看看属性,它将允许你在一个值被分配给(或从一个字段获得)时执行各种自定义逻辑。

private string history; 
public string History 
{ 
    get { return history; } 
    set 
    { 
     // Do something fancy with 'value', e.g: 
     history = history + "\n" + value; 
    } 
}