コンストラクタが長くなることで定評のある?ReactivePropertyですが、C# vNextでプロパティ初期化のところに書けば綺麗に書けるんじゃないか!?という淡い期待を持ってる人は少なからずいると思います。
残念ながら・・・
class Person { public ReactiveProperty<string> Name { get; private set; } = new ReactiveProperty<string>(); // コンパイルエラーpublic ReactiveProperty<string> Output { get; private set; } = Name .Select(s => s.ToUpper()) .ToReactiveProperty(); }
理由はエラーメッセージの通り。
A field initializer cannot reference the non-static field, method, or property 'ConsoleApplication5.Person.Name'
初期化の順番が決まらないから仕方ないっちゃぁ仕方ないですね。
C# vNextの試し方
じんぐるさんのBlogを参照しましょう!
一度設定しておいて、ファイルメニューからプロジェクトテンプレートとしてエクスポートしておくと捗ります。