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);
コンストラクタの引数順に値をセットすること。
参考文献