2016-12-04 5 views
0

基本的に私はこの1つのクラスAnimalを持っています。 このクラスでは、私は文字列を持っていますa、b、c、x、y、z;C#最初のクラスにオブジェクト配列がある場合、単一のプロパティの2番目のクラスを作成する必要がありますか?

このプログラムのオブジェクト配列を作成したいので、arrという名前のオブジェクトを作成します。

a、b、c、x、yオブジェクト配列要素ごとに異なる値を設定したいと思います。

すなわち:arr[0].aは、私が唯一のプログラム、すなわち全体のために一つの値を使用したい、プロパティZため、

しかしarr[2].aなどとは異なっている、arr[1].aとは異なります。ARR [0] .zは私が使用したい唯一のz値です。現在、私はarr [0] .zを呼び出して、[]内の他の数字は使用しません。

この悪い習慣であり、私はメモリ空間を浪費しないように、プロパティzのためにまったく新しいクラスを作るべきですか? zの他の値を使用しないことに関連する他の問題はありますか?

+0

メモリスペースが最も懸念されます。なぜそれが悪いデザインなのかという理由は、「z」は動物の特性を記述していないからです。それは、種、年齢、色、光の速度を単一のオブジェクトに保存しようとした場合と同じです。 – kamilk

+0

お返事ありがとうございます。だから、私はzをarr.zというだけでzと呼んでいますか? – Nuthead

答えて

0

z変数を静的にして、あなたのクラスのコンストラクタでこの値で単純に初期化します。

0

このようにしてクラスを実装できます。

public class Animal 
{ 
    public string A { get; } // related to instance 
    public string B { get; } 
    public string C { get; } 
    public string X { get; } 
    public string Y { get; } 

    public string Z   // gets or sets static variable which will affect all animals. 
    { 
     get { return _z; } 
     set { _z = value; } 
    } 

    private static string _z; 
} 

これは悪い習慣ですか?

文脈なしでは、そのは常にとは言えないデザインです。しかし、一般的に、はい、その悪いデザイン。

+0

大文字の 'Z'を参照してください。この 'arr [2] .Z =" "のように。 @Nuthead –

関連する問題