.NET Framework全般の最近のブログ記事

TwitterのOAuthが面白いので遊んでいた。

無計画にコードを書いていて、見にくくなったので、OAuthに準拠するようにコードを整形していた。

が・・・、整形前はちゃんと動いていたのに、認証が通らなくなった!!!

例えば、ごく小規模な処理を書くとき、それをインラインで書けばいいのかメソッドにしたほうがいいのか迷う時がある。複数個所から利用する処理ならメソッド化したほうが当然よいのだけど、局所的に使用するものの場合は迷いどころ。

特にそれが繰り返し処理の中で使用する場合は、メソッドにしたときの呼び出しコストが気になる。実際、メソッドによる呼び出しコストはどのくらいなのだろうか・・・。

気になったので、実際に計測してみた。

foreach(VBであればFor Each)ステートメント内では、反復処理しているコレクションの序列を変更してはならない、という暗黙のルールがある。foreachによる反復処理は、IEnumerableインターフェイスとIEnumeratorインターフェイスによって実現している。

IEnumerableインターフェイスはIEnumeratorインターフェイスを返すメソッド GetEnumerator()を定義しているにすぎないので、反復処理の実質的な手続きはIEnumeratorインターフェイスが担っているわけで。。。


とあるプロジェクトでObject型のリストを扱うことになった。

その際、ObjectをArrayListに並べるか、GenericList = List<T> に並べるかで迷った。

ArrayList と List<object> はどちらのほうが高速なのだろうか・・・と。


なので、試してみた。

ListViewControlのTextプロパティって字数制限あったんだ。

259文字までしか表示されなくて調べたら、MSDNに"259文字以内に収めなさい"と書いてあった。

たぶん、アイコン表示にしたときにやたら縦に長くなるからだろうけども・・・

(´・ω・`) Detail表示の時は解除してもらいたいなぁ。

てか、そもそもそんな長い文字列をListViewで扱うのが間違いか (=゜∇゜)

以前に自作したパケットキャプチャ系のアプリを久しぶりに動かしてみたところ・・・

何やら送信パケットしかキャプチャされない。もともと送受信する全パケットをキャプチャすることができるアプリだったのでプログラムには問題ない。どうやら、OSがWindows7になったことに原因があるようで・・・。

GUIアプリを作っていると、エラーが発生したときのメッセージをMessageBoxで表示しているのだけど、それを毎回手書きするのは面倒なので、ShowErrorという名前のstaticなメソッドを作り、Exceptionクラスを投げればいいようにしてある。
パスワードや機密情報などの文字列を安全に格納するクラスとして、.NET FrameworkにはSecureStringクラスが用意されている。クラスに格納した文字列は即座に暗号化され、万が一プロセス空間のメモリを外部から読み取られても、格納した文字列が盗み出されることはない。また、クラスには文字を設定するメソッドはあるが、読み出すメソッドが用意されていない。SecureStringに格納した文字列を取得するには、Marshalクラスに用意された専用のメソッドを経由する必要がある。

例えば、Webに掲載する一連のドキュメントをXHTMLでまとめ、Webサーバーでそれを読み込んでページを組み立てる。こんな風にすれば、下書きしたドキュメントをHTMLに書き直す手間が少なくなるかな、と思った。

XHTMLならXMLの一種だから、XmlDocumentクラスで読み込んで、ごにょごにょと必要箇所を取り出すようにしてみたり・・・。しようと思ったら、まず読み込みがめちゃ遅い!その上、SelectSingleNodeメソッドやSelectNodesメソッドがノードを返してくれない!

一体その原因はっ・・・!

"ブログを投稿すると、新たな事実が後から分かる"

よくよくこういうことがあるのだけど、今回も起こったので臨時のおまけ編。

 VisualStyleにおける.NETとWinAPIの関係についてです。