私はオブジェクトの記述子として使用しているクラスを持っています。その記述子には、そのオブジェクトに関連するさまざまな操作のためにインスタンス化されるクラスのための複数の参照があります。私はそれらの参照を引き出し、それらを記述子クラスの属性に置き換えることを考えていました。このことから属性の使い勝手の悪い/不適切な使用?
:
class MyDescriptor : BaseDescriptor {
public Type Op1Type { get; }
public Type Op2Type { get; }
}
これには:
[Op1(typeof(foo))]
[Op2(typeof(bar))]
class MyDescriptor : BaseDescriptor {
}
私は非常にまれな属性を使用していません。これは彼らの悪い使用と考えられるでしょうか?
Genericsを代わりに使用することを考えましたか? – Lazarus
1つの問題は、属性を使用する場合、パブリックインターフェイスにコンパイル時の型を知る必要があるということです。仮想メソッドを使用すると、コンパイル時に知られていない型を使用することができます。 – CodesInChaos
派生クラスの操作数が異なる可能性があるので、静的な数の汎用パラメータを持つことはできません。 – redman