道具の進化でライフスタイルが変化するってのはよくあるけどさ。最近感じてること。
VisualStudio2005 以降、っていうか2008でさらになんだけど、個人的に「とりあえず書いて動かしてみる」っていう傾向がさらに強くなったよ。
インタプリタ言語的にデバッグが簡単になって、つーか、そこいらのインタプリタ言語よりもデバッグしやすくて、泣けてくる。動いてる途中でブレークして、オブジェクトの中身覗いたり、場合によっては書き換えて、また実行。嬉しすぎる。それから、時間がクソみたいにかかる処理させてる途中で、「しまった、前処理のデータ(たとえば、Name っていう get プロパティを持ってる型のコレクションのインスタンス sourceData)をダンプしておけばよかった。」とか思ったとしたら、
File.WriteAllLines(“dump.txt”, sourceData.Select((data) => data.Name).ToArray());
とかイミディエイトウィンドウに叩きこめば、あっという間にダンプ完了。ちなみにこのコードでは、 sourceData に入っている要素から、それぞれの Name の値を取り出して、配列(Array)にしたものをファイルの1行1行としてみなして、dump.txt ってファイルに WriteAllLines している。「見慣れたコード」だったら、
using(StreamWriter sw = new StreamWriter(“dump.txt”)) {
foreach(Hoge data in sourceData) {
sw.WriteLine(data.Name);
}
}
あたりになるだろうか。見比べて何がすごいって、上のバージョンには 型名が入ってない(「static メソッドを特定するため」の File は除いて)。こいつはタイプ量の問題だけじゃあなくて、実はかなりすごいというか、これを「C言語ファミリ」と言っていいのだろうか、というような話があるわけだが、そんなんしてる場合じゃないので、とりあえずググレw キーワードは Linq。