トップ «前の日(05-18) 最新 次の日(05-20)» 追記   RSS 1.0 FEED  

Journal InTime


2004-05-19 (Wed)

_ [プログラミング] NotSupportedException クラス

.NET Frameworkを使っていると、ちょくちょくこの例外にお目にかかる。

たとえば、Stream.Length プロパティとか。

NotSupportedException Stream から派生したクラスがシークをサポートしていません。

[Stream.Length プロパティより引用]

つまり、StreamのサブクラスでもLengthが実装されてないかもしれないということだ。 こんな設計にされたら、せっかくの静的な型チェックも意味がない。

LengthをStreamから他のクラスに移さないのには何か深遠な理由があるのだろうか。

本日のツッコミ(全9件) [ツッコミを入れる]

_ WhiteRabbit [こんにちは。C#のヘジルスバーグはDelphiの設計者でもあったので、VCLのTStreamに似てるのではないでしょ..]

_ shugo [なるほど。 でもどうしてTStreamはそういう設計だったんでしょうね。 弱い型の言語のライブラリを参考にしたからと..]

_ WhiteRabbit [うーん、わかりません。ただ、最初の頃は TStream の継承クラスはシークできるものばかりだったので(TFileS..]

_ 菊池 [んー、OSその物がそうなので、という事では。 Socketを ReadFile / WriteFile でアクセスで..]

_ shudo [JXTA (のJava実装) でも、同じようなフラストレーションを味わったなあ>NotSupportedExcept..]

_ shugo [んー、下のレイヤーに不都合があっても、できるだけそれを隠蔽するのがよいライブラリなんじゃないでしょうか。 CanSe..]

_ shugo [> 同感。 やっぱそうですよねえ。 ちなみにshudoさんは私とは別人です。まぎらわしくてすみません。]

_ 菊池 [>んー、下のレイヤーに不都合があっても、できるだけそれを隠蔽するのがよいライブラリなんじゃないでしょうか。  良..]

_ shugo [菊池さんがそういう(クラスが細分化された)ライブラリをお好きでないというのは理解できる部分もあるのですが(Rubyの..]


2005-05-19 (Thu)

_ [Ruby] Tigerでreadlineがビルドできない

HEADで直した つもりですので、rm -rf /usr/lib/libreadline*とかする前に試してみてください。

追記:

と思ったけど、libeditだとirb/completionの補完でSEGVしました:(

何でusername_completion_function()なんか呼ぶんだ?