アジョブジ星通信

日常系バンザイ。

C# で StrConv を実装する

f:id:azyobuzin:20121202201333p:plain

C# Advent Calendar 6 日目です。ここまですごくハイクオリティだったのに空気壊すようでごめんなさい。

さて、書くネタがもうn番煎じかわからないくらいたぶん既出です。というわけで VB のライブラリにある StrConv を実装してみました。

なんでこんなことを

全角・半角変換をするためだけに Microsoft.VisualBasic に参照を通すのにうんざりしていたので、いい機会なのでやってみました。

まずはコードの全貌を

使い方

MapStringExWrapper.MapString("テスト", MapStringExWrapper.MapFlag.HalfWidth);
// "テスト"

解説など

StrConv では LCMapString とかいう WinAPI を使っているようです。 API 大嫌いな僕には辛いですね。 MSDN によると Vista 以降では LCMapStringEx を使うといいようなので、こっちを使いました。

参考

日本語で OK …

というわけで、 API にしたがってそれっぽくラップしました。

f:id:azyobuzin:20121202201113p:plainこんなエラーでますが。無視します。きっとどこか引数間違えてる…。
コメントを見て奮闘してます…。

ところで、 SortKey っていうやつをやってみたのですが、返ってくる値がよくわかりません>< ググってみてもよくわからない。

ICU/UCA/LCMapString - ものがたり

もったいぶらないでくだされ~
というわけで、わかり次第また記事書きます。後味悪い…。

続き:SortKey を読み砕く - アジョブジ星通信