- ToString()メソッドをクラスプロパティでオーバーライドする必要があります。
- 有効な方法は1つだけですか、その両方がありますか?
どちらの場合でもそれぞれの方法を使用する必要がありますか?ToString()メソッドをプロパティまたはフィールドでオーバーライドするには?
public override string ToString() { return String.Format("{0},{1}", this.field1, this.field2); // ..or return String.Format("{0},{1}", this.Property1, this.Property2); }
助けてください?
これは変更される値とは何が関係していますか?プロパティを使用する実装はgetterのみを使用しているため、プロパティは読み取り専用です。 – juharr
@juharrプロパティがコンストラクタを介して設定され、後で変更されるとどうなりますか?それは期待される行動を変え、野外アプローチ(反射を避ける)では可能ではありません。プロパティは読み込み専用ではない可能性があります。質問には十分な詳細が示されていません。要点は、行動の適切なカプセル化と意図しない副作用の回避に関するものです。それは関連性があるかもしれないし、そうでないかもしれない、それが私がそれを呼び出す理由である。 –
OK、あなたの答えのすべてから、私は両方の方法が実際に可能であることを理解していますが、特殊なケースではどちらを選択するかは、プログラムのクラス機能の手段に完全に依存します。この問題に注目していただきありがとうございます。私はまだ最高の答えに投票することはできません。 – CSharp4eto