あるよね
- ラムダ式完備
- Linqが便利すぎる
- Dictionary
- Action+ラムダ式でスコープを柔軟に変更できるメソッドを作れる
ラムダ式はJavaに慣れすぎててすごく自然に書かれてたのを見てびっくりした ここまで普通に使われていたとは...
Action利用例
Action<string> addText = (s) =>
{
App.Current.Dispatcher.Invoke(new Action(() =>
{
listbox1.Items.Add(s);
listbox1.SelectedIndex = listbox1.Items.Count;
}));
};
これを呼び出すのはaddText.run(s)
でもなくaddText.exec(s)
でも無く、addText(s)
というJavaではありえない仕様。この仕様のお陰でメソッド内でのみ利用可能などのスコープの柔軟性を作っているのは非常に便利だと思う。
このaddText
メソッド(?)で利用したApp.Current.Dispatcher.Invoke(Action)
はWPFフォームのコントロールを別スレッドから呼び出す際に使用するらしい。
JavaとCsでのスレッドの利用法が微妙に違うのは今後慣れるしかなさそう
個人的に残念なのはコードフォーマットのデフォルトのスタイルが気に入らないだけなのでなんとか設定でねじ伏せようと思います。