2012年03月20日

Interactive Extensions(Ix) - Hideメソッド

   このエントリーをはてなブックマークに追加 Clip to Evernote
今日は、EnumerableEx.Hideメソッドです。

具象型ではなく、インターフェースに対してプログラミングするのが、
オブジェクト指向プログラミングの原則なわけで、
配列や、Listではなく、IEnumerable<int> としてコードを書きたい場合が
あります。
こんな感じですね。


しかし、IEnumerable とタイプするのが面倒です。
ということで、Hideメソッドの出番になります。
Hideメソッドを使えば、以下のように、var が使えるようになります。


というのが、僕の考えた Hideメソッドの使い方なんだけど、
これで合っているのかな?

実際、Hide使う場面って全く思い浮かばない。
メソッドの引数に渡すときは、自動でUpCastされるから必要ないしなー。
LINQ to Object使うときにも、ドットでつなげればいいんだし...


追記 2013/03/21
上で書いた内容は全然的外れでした。
Hideは、具象クラスを隠し、IEnumerable<T>として提供するメソッドということです。
つまり、上記の seqは、元の型情報が隠れてしまうため、
オリジナルの int[] にダウンキャストすることを防げるということです。
教えてくださった皆さんありがとうございました。


この記事へのコメント
ダウンキャストされると元の型を取得されてしまう為、
復元されないようにHide()してダウンキャストできないようにするんだと思います。
Posted by 通りすがり at 2012年03月20日 23:56
どうもありがとうございます。
Hideと言う名前の意味が掴めなかったのですが、そういう事ですね。
Posted by gushwell at 2012年03月21日 07:22
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52236613