1

たくさんのプロパティを持つクラスがあり、これらすべてのプロパティを持つコンストラクターを作成したい場合は、たくさん入力する必要があります。これを行うためのよりスマートな方法がC#4.0にありますか?

class MyClass {
  public string A{get;set;}
  public string B{get;set;}
  public string C{get;set;}
  public string D{get;set;}
  public string E{get;set;}
  public string F{get;set;}
  public string G{get;set;}
  //and so on...

  public MyClass(string a, string b, string c /*and so on...*/)
  {
    this.A = a;
    this.B = b;
    this.C = c;
    //...
  }
}

すべてのプロパティを使用してオブジェクトを作成するようにユーザーに強制したいと思います。

4

3 に答える 3

2

Resharperをインストールすると、リファクタリング ツールの 1 つを使用して「コンストラクターを生成」し、ウィザードでプロパティのリストを表示して、含めたいプロパティを選択できます。

いいえ、私は Jetbrains とはまったく関係がありません。R# を使用しているだけで、非常に貴重なツールだと思います。

于 2012-07-25T09:01:15.277 に答える
1

少し前に同様の質問をしました:

大きなコンストラクターのリファクタリング

手短に言えば、見栄えを良くしたり、作成しやすくしたりするためのサポートはあまりありません。ソリューションは問題を「解決」することはなく、別の場所に移動するか、回避するだけです。

最初に確認することは、クラスが実際にこれほど多くの状態を必要とするかどうかです。クラスはやりすぎですか?より単純なクラスに分解できますか? これは常に可能であるとは限りません。多くのコンストラクター引数を持つクラスがある場合もあります。

于 2012-07-25T08:55:12.690 に答える
0

.Net4.0 を使用している場合は、Named parameters.

このようなもの:

class Person
    {
        public long Age { get; set; }
        public string Name { get; set; }
        public double Salary { get; set; }

        public Person(int age=22,string name="Ram",int salary=9000)
        {
            Age = age;
            Name = name;
            Salary = salary;
        }
    }
于 2012-07-25T08:57:36.467 に答える