LoginSignup
2
1

More than 1 year has passed since last update.

C#の基本イディオムについてその1~変数の初期化編~

Posted at

C#でコードを書く際の基本的なイディオムについて、まとめてみた。

変数の初期化

変数名と値は一緒に定義する。

var name = "aiueo";

もちろん、

var name;
name = "aiueo";

と書くこともできるが、2行で各理由が特になければ、1行で済ませる。

配列の変数の初期化

変数名と同様に、変数名と値を一緒に定義する。

var arrayData1 = new string[] {"あいうえお", "かきくけこ", "さしすせそ"};
var arrayData2 = new int[] {0, 1, 2};
var arrayData3 = new List<int>() {3, 4, 5, 6, 7, 8, 9};

以下の書き方も間違ってはいないが、コードが増えてしまうので、基本的に1つでまとめられる場合は1行でまとめてしまうのがベター。

var arrayData1 = new string[] {};
arrayData1[0] = "あいうえお";
arrayData1[1] = "かきくけこ";
var arrayData3 = new List<int>() {};
arrayData3.Add(1);
arrayData3.Add(2);

オブジェクトの初期化

public class Person {
     public string FirstName { get; set; }
     public string LastName { get; set; }
     public int Age { get; set; }
}

というPersonクラスが定義されていたとする。(コンストラクタはない。)

新しいオブジェクトを作成する際は、

var person1 = new Person {
   FirstName = "太郎",
   LastName = "山田",
   Age = 22,
}

のようにまとめて定義してしまう。

クラスの中にコンストラクタがあった場合

public class Person {
      public string FirstName { get; set; }
      public string LastName { get; set; }
      public int Age { get; set; }

      public Person(string fn, string ln, int age)
      {
         FirstName = fn;
         LastName = ln;
         Age = age;
      }
}

上記のように、Personクラスの中にコンストラクタがある場合、person1を作ったときのように初期化しようとすると、構文エラーになるので、注意。

この場合は、

var person1 = new Person("太郎", "山田", 12); 

コンストラクタの引数順に値をセットすること。

参考文献

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1