に接続されているメソッドを定義する適切な方法:強く、私は次のインタフェースを持っているインタフェース
interface IName
{
string Name { get; }
}
そして、いくつかの基本クラスBaseClassの。このクラスのチャイルドは、INameインタフェースを実装することができますが、それらのすべてではありません。
子供がINAMEを実装する場合、以下のように、私はまた、ToStringメソッド()メソッド、すべてのケースについてまったく同じ方法を上書きしたいと思います:
public override string ToString()
{
return Name;
}
それは、ToStringメソッドをオーバーライドするための良い場所(と思われます) INameのインターフェイスになりますが、私はそれがC#で可能ではないと信じています。 ToString()を各クラスで実装することは、コードの冗長性(および時間の無駄)が非常に多いため、悪い考えです。
このような場合の適切な解決策は何ですか?
抽象クラスなどの基本実装を追加します。 –
これは '.Name'を呼び出す代わりにこれを最初に必要とする理由ですか? –
基本クラス(前述)のとおりですが、Inameを実装していない子クラスに影響するため、ToString()を上書きしたくありません。 – wpfnoop