2016-06-16 14 views
0

私はこれをハックしようとするテストコードを作っています。クラスの配列を割り当てたりインスタンス化したりしたい。クラスMyClass(){_ i ++}の割り当て/インスタンス化を含め、可能な限り初期化したいと思います。今私は)私は(MyClassのコンストラクタMyClassの中でものを行うことができる2つの 操作、新しいMyClass Classy = new MyClass [n]をコンストラクタでオーバーロードするにはどうすればよいですか?

MyClass[] ClassyChassis=new MyClass[4]; 
for(int i=0;i<4;i++) ClassyChassis[i]=new MyClass(); 

をしています。しかし、私はなどなど、デフォルト値を割り当て、それが配列である場合の各アレイメンバーの知識をさせていただきたいと思い

なぜ私はMyClassの[]の過負荷によってこれを行うことはできませんおそらく

MyClass ClassyChassis=new MyClass[5](); 

MyClass[5](initalizer0,initalizer1,initalier2); 

答えて

1

MyClass []はクラスそのものではなく、MyClass型の配列です。組み込みの配列型にコンストラクタを追加することはできません。

ファクトリメソッドが機能します。

public class MyClass 
{ 
    public int SomeID { get; set; } 
    public string someName { get; set; } 
} 

あなたが宣言することができ、CreateMyClassCollection(int型の数、PARAM1、PARAM2、param3)

public static class MyClassFactory 
{ 
    public static List<MyClass> CreateMyClassCollection(int number, param1, param2, param3) 
    { 
     List<MyClass> items = new List<MyClass>(); 
     for (int counter=0;counter<number;counter++) 
     { 
      items.Add(new MyClass(param1,param2,param3); 
     } 
     return items; 
    } 

} 
0

クラスが2つのプロパティの名前とIDを持つように定義されてみましょうというメソッドをファクトリクラスを作成し、追加します

MyClass[] MyClassArray = { new MyClass(){SomeID=1,someName="aName"}, 
          new MyClass(){SomeID=10,someName="bName"}, 
          new MyClass(){SomeID=11,someName="cName"}, 
          new MyClass(){SomeID=12,someName="dName"} 
          }; 

をさもなければ、あなたはMyClass

のリストを使用することができますし、次のようなように、クラスの配列を初期化
List<MyClass> MyClassList = new List<MyClass>(){ new MyClass(){SomeID=1,someName="aName"}, 
               new MyClass(){SomeID=10,someName="bName"}, 
               new MyClass(){SomeID=11,someName="cName"}, 
               new MyClass(){SomeID=12,someName="dName"} 
               }; 
0
MyClass[] BuildArray(int size, string param1, string param2, string param3) 
    { 
     return Enumerable.Range(1, size).Select(i => 
      new MyClass {Property1 = param1, Property2 = param2, Property3 = param3}) 
      .ToArray(); 
    } 

のLINQを必要としない何かをすると強制的にちょうどのLINQを使用してのためにLINQを使用するための用語があるはずです。私たちがそれを何と呼ぶにしても、これがこれです。

関連する問題