ブログ 2016/12/07 小ネタ インデックス付き foreach foreach ステートメントで、インデックス付きで列挙したいことが時々あります。 今回は、そういうときの対処方法について。 というか、C# 7が待ち遠しくなる話。 配列やList<T>であれば以下のようにも書けます。 for (int i = 0; i < length; i++) { var item = array[i]; Console.WriteLine($"index: {i}, value: {item}"); } IEnumer… 続きを読む 2016/12/06 小ネタ コレクション初期化子 昨日のオブジェクト初期化子に続き、今日はコレクション初期化子の話。 コレクション初期化子ってのは、例えば以下のようなやつのことです。 // この、{} の部分がコレクション初期化子。 var x = new List<int> { 1, 2, 3, 4, 5 }; このコレクション初期化を使える条件は、Add メソッドを持っていて、かつ、 IEnumerable を実装していることです。 最低限の実装をしてみると、以下のような感じ。 class MyList… 続きを読む 2016/12/05 小ネタ オブジェクト初期化子 今日の小ネタは、オブジェクト初期化子について、意外と知られてないらしい話。 問い 唐突ですが問題です。以下の3つのコードはそれぞれどういう意味でしょう。 var x = new Line { A = new Point { X = 1, Y = 2 }, B = new Point { X = 3, Y = 4 }, }; var x = new Line { A = { X = 1, Y = 2 }, B = { X = 3, Y = 4 },… 続きを読む 2016/12/04 小ネタ 式の評価順序 C#小ネタと言いつつ、IL小ネタになりがちだったので、今日はC#小ネタらしく。 最初にちょっとしたクイズ。 まず、中身は何でもいいんですが適当な2引数のメソッドを用意します。 例として、単純な足し算でも用意しておきましょう。 static int F(int x, int y) => x + y; 以下の2つのコードの挙動は同じでしょうか?違うでしょうか? 1つ目: 一時変数を使用 var temp = F(2, 3); var result = F(1, te… 続きを読む 2016/12/03 C# Tips 2016 小ネタ corefxlabとSystem.Memory corefxlab .NETチームは以下のリポジトリの1つに、corefxlabというものがあります。 名前通り、corefx (.NET の標準ライブラリ)入りを目指して試験的なコードを入れておく場所で、 安定したものからcorefxに移転になったりします。 corefxの方にいきなり入らず、一度「lab」を経ているわけで、 それなりに「これまでの.NETではあまり取り組んでなくてこなれていないもの」が含まれています。 その最たるものがパフォーマンス。 .NETは、これまでどちら… 続きを読む 新しい投稿へ 過去の投稿へ
2016/12/07 小ネタ インデックス付き foreach foreach ステートメントで、インデックス付きで列挙したいことが時々あります。 今回は、そういうときの対処方法について。 というか、C# 7が待ち遠しくなる話。 配列やList<T>であれば以下のようにも書けます。 for (int i = 0; i < length; i++) { var item = array[i]; Console.WriteLine($"index: {i}, value: {item}"); } IEnumer… 続きを読む
2016/12/06 小ネタ コレクション初期化子 昨日のオブジェクト初期化子に続き、今日はコレクション初期化子の話。 コレクション初期化子ってのは、例えば以下のようなやつのことです。 // この、{} の部分がコレクション初期化子。 var x = new List<int> { 1, 2, 3, 4, 5 }; このコレクション初期化を使える条件は、Add メソッドを持っていて、かつ、 IEnumerable を実装していることです。 最低限の実装をしてみると、以下のような感じ。 class MyList… 続きを読む
2016/12/05 小ネタ オブジェクト初期化子 今日の小ネタは、オブジェクト初期化子について、意外と知られてないらしい話。 問い 唐突ですが問題です。以下の3つのコードはそれぞれどういう意味でしょう。 var x = new Line { A = new Point { X = 1, Y = 2 }, B = new Point { X = 3, Y = 4 }, }; var x = new Line { A = { X = 1, Y = 2 }, B = { X = 3, Y = 4 },… 続きを読む
2016/12/04 小ネタ 式の評価順序 C#小ネタと言いつつ、IL小ネタになりがちだったので、今日はC#小ネタらしく。 最初にちょっとしたクイズ。 まず、中身は何でもいいんですが適当な2引数のメソッドを用意します。 例として、単純な足し算でも用意しておきましょう。 static int F(int x, int y) => x + y; 以下の2つのコードの挙動は同じでしょうか?違うでしょうか? 1つ目: 一時変数を使用 var temp = F(2, 3); var result = F(1, te… 続きを読む
2016/12/03 C# Tips 2016 小ネタ corefxlabとSystem.Memory corefxlab .NETチームは以下のリポジトリの1つに、corefxlabというものがあります。 名前通り、corefx (.NET の標準ライブラリ)入りを目指して試験的なコードを入れておく場所で、 安定したものからcorefxに移転になったりします。 corefxの方にいきなり入らず、一度「lab」を経ているわけで、 それなりに「これまでの.NETではあまり取り組んでなくてこなれていないもの」が含まれています。 その最たるものがパフォーマンス。 .NETは、これまでどちら… 続きを読む