結局昨日は…

FreeNote.NETを開発してました。
このソフト、Zaurus版のFreeNoteQtの.NET版で、スケールを変えての編集などの付加機能を持っています。


しかし、いつもは、javaだのC++だのを使っている所為か、どうにも.NETは勝手の違うところがあって、意外に苦戦しています。
#統合環境は使いやすいですが…。


一番わかりにくいのは、オブジェクトの生成と消滅ですね。


javaは基本型以外は、参照。
C++はポインタがあり、自分で生成と消滅のルールをきちんと把握できます。
.NETは全ての型が参照だと思っていたのですが、昨日、System.Drawing.Rectangleを扱っていて気付きました。
こいつ、nullが入らん!Σ( ̄口 ̄;)


.NETの全てのクラスは、object型を継承しています。
このことから考えると、Rectangleにもnullが代入できるように思えます。
…ところが、System.Drawing.Rectangleは、実は構造体であるので、nullは設定できない…と。


しかも、この構造体、メソッドまで持っているので、見た目上、ますますクラスと見分けがつきません。
#しかも、名前としてはRectangleクラスと言っておいて、ヘルプに飛ぶとRectangle構造体と書いてあるときたもんだ。(けっ!)


色んな言語の良いところを取ったように言ってますが、どうにも中途半端だなぁ…というのが正直な感想です。


ともあれ、FreeNote.NETは基本的な機能は一応作り込むことができ、あとは、ファイルの入出力やら、コピー、アンドゥ、インポートなどの補助機能のあたりの作り込みを残すのみとなりました。
しかし、FreeNoteQtのようなフリーハンド前提のアプリは、マウスにはきつい…とも感じています。


今では鳴かず飛ばずになってしまいましたが、ペンコンピュータタブレットPC(名前すら思い浮かばなかった…_| ̄|○)ならばあるいは活用の場が有るのかもしれませんね。