-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 に答える