C#4.0
いにしえからの言い伝えによると、よく訓練されたF#erはコンピューテーション式をつくるそうです。 Select Many: Reactive Extensions’ Mother Of All Operators (Chaining). お、SelectManyですね。 なるほどなるほど。計算を繋ぐもの。モナドですか。そこ…
ご存知、F#は並列処理や非同期処理について考慮されて設計された強力な言語です。 いくつかサンプルプログラムを書いて、わたしもその雰囲気については過去に簡単に確認していました。 しかし、FSharpAsyncやFSharpAsyncBuilder(computation expression)にど…
「弱い参照」と「強い参照」.NET Frameworkでは、ガベージコレクションによってメモリが管理されます。 変数(フィールドやローカル変数など)に格納されている参照のことを「強い参照」と言います。 強い参照によるオブジェクトは、そのオブジェクトがアク…
久しぶりにExpression Tree(式木)をいじってました。 .NET Framework4では式木が大幅にバージョンアップして、複文や条件分岐、ループなどが表現できるようになりましたが、 それによってどんな面白いことができるかは、まだ模索中だったりします。 今回はと…
拡張メソッドバブルのこのご時世、ジェネリックデリゲートに対して拡張メソッドが定義されていることとかも少なくない。 ということで、ふつうのデリゲートをジェネリックデリゲートとして扱いたい!なんてケースもあるようなないような。いや、きっとありま…
MVVMパターンのViewModelで、INotifyPropertyChangedをいちいち実装すんのかったるい。かといって、AbstractなViewModelBaseは継承したくないでござるよ。
INotifyPropertyChanged インターフェースを実装した抽象クラス ViewModelBase は、残念な俺俺設計MVVMパターンでViewModelを実装する場合、INotifyPropertyChanged インターフェースを実装するのが面倒という理由もあって、 INotifyPropertyChanged インタ…
C#4.0およびVB10で利用できるようになった、System.Dynamic.ExpandoObjectクラス。 これはDLR(動的言語ランタイム)の相互運用モデルのひとつとして機能する。 例えば、ExpandoObjectクラスのインスタンスを、IronPythonの関数に渡すことができる。 このSyste…
遅ればせながら「WindowsForm終了のお知らせ」を感知WPFに関しては、仕事で使う機会もなく、自宅に満足な開発環境もなかったという理由で、 関連記事の流し読み程度はしていましたが、基本華麗にスルーしてきました。 しかし、Windows7が好感触だったり、今…
.NET Framework4.0には System.Lazy なんてものが追加されていて、 もしかして遅延評価標準サポートktkr?と、思わずwktkした人も少なくないのでは。 ですが、これはインスタンスの生成を遅らせるだけの代物でした。多くのC#erの期待は一瞬にして儚く散って…
メモ化とはプログラムを高速化するための最適化技法のひとつで、 関数呼び出しの結果を保持しておいて再利用するというものです。 1度呼び出された関数が再度呼び出されたときに再計算をせずに、保持しておいた値を再利用する手法です。 具体的には、キーと…