Visual Basicの最近のブログ記事

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

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

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

たとえば次のような処理があったとする。

void Sample(string s)
{
    // sが空白なら処理しない
    if (s == "") return;

    // 処理

}

 

この処理には何らかの文字列が与えられなければならず、最初に空白文字の判定を行っている。今までこれで問題がなかったので特に気にすることもなかったけど、よくよく考えればStringは参照型だから"null"や"Nothing"が指定できてしまうわけで・・・

先日、System.Net.Mail名前空間のMailMessageクラスとSmtpClientクラスを使い、メール送信を行うテストプログラムを作成。そのメールをインターネットブラウザのOpera 9に付属されているメールクライアントで受信してみると・・・

警告: ファイルのデコード中にエラーが発生しました

というエラーが文末に赤字で表示されました。どうやら.NETから送信したメールだけがエラーを発生させている模様。原因を探っている中、メールのヘッダに気になる記述が・・・。

UserControlを継承した独自のコントロールを使う際、FormデザイナでTextプロパティに与えた文字列はInitializeComponentに反映されない。なんとか反映できるようにならないかと、オーバーライドしたりnew(VBではShadows)で隠匿したり属性を変更したり・・・結局何やっても無理でした。 orz

バグなのか仕様なのか不明だけど、プロパティ名を変えるしかなさそう??

.NET Framework 2.0 には、HTTPSに代表されるSSL(Secure Socket Layer)暗号化通信を行うためのストリーム「SslStream」が用意されている。

でも実用例があまりネットで公開されていないので、ホスト名だけでHTTPS用のSslStreamを生成するクラスを作ってみた。

構造体とバイト配列間のコピーはいくつかサンプルが見つかったのだけど、サイズが同じで異なる構造体間のコピー、というのがなかったので考えてみた。

こんなのはどうだろうか?

VBのコーディングで便利だな~、と思うメソッドを3つ紹介。

Visual Studioのソリューションエクスプローラでは「Form1.vbとForm1.Designer.vb」などの関連するファイルが自動的に入れ子になる。これは非常に便利な機能なのだが、自分で作ったファイルに関しては入れ子になってくれない。

VisualBasic名前空間には特殊な文字を集めた「ControlChars」がある。この一覧にある文字を、Char.IsWhiteSpaceメソッドにかけると、それぞれどう判断されるのか・・・。

 

試してみた。