0

私は抽象クラスを持っています

public abstract class BaseClass
{
    public abstract void CreateGraph(){}
}

[CustomAttribute(Property1 = value , Property2 = value2)]
public class Graph1 : BaseClass
{
 public override void CreateGraph()
     {
       //implementation
     }
}

プロパティ値をGraph1 使用したオブジェクトの作成方法。CustomAttributeオブジェクトを作成するための良いアプローチですか?

4

3 に答える 3

0

カスタム属性が必要な場合は、System.Attribute から継承するクラスを定義する必要があります。実際には、System.AttributeUsage で AllowMultiple パラメータを true に設定すると、異なる値を持つカスタム属性を複数持つことができます。

ここで確認できます。

ただし、「オブジェクトを作成する」ためにそれは必要ありません。ここで「良いアプローチ」が何を意味するのかわかりません。sten が述べたように、何をする必要があるかに応じて、ベスト プラクティスの GoF デザイン パターンを確認する必要があります。

于 2013-01-07T16:58:09.253 に答える
0

いいえ、それは良い方法ではありません。.NET ではコンパイル時に属性値を認識しなければならないからです。たとえばvaluevalue2あなたの例では、値を設定する可能性をかなり制限している定数値のみにすることができます。

于 2013-01-07T16:49:09.520 に答える
0

これには属性を使用する必要はありません。一般的なオブジェクト指向設計に従うだけです。Factory 設計パターンを確認する

于 2013-01-07T16:49:49.307 に答える