C# で StrConv を実装する
C# Advent Calendar 6 日目です。ここまですごくハイクオリティだったのに空気壊すようでごめんなさい。
さて、書くネタがもうn番煎じかわからないくらいたぶん既出です。というわけで VB のライブラリにある StrConv を実装してみました。
なんでこんなことを
全角・半角変換をするためだけに Microsoft.VisualBasic に参照を通すのにうんざりしていたので、いい機会なのでやってみました。
まずはコードの全貌を
使い方
MapStringExWrapper.MapString("テスト", MapStringExWrapper.MapFlag.HalfWidth); // "テスト"
解説など
StrConv では LCMapString とかいう WinAPI を使っているようです。 API 大嫌いな僕には辛いですね。 MSDN によると Vista 以降では LCMapStringEx を使うといいようなので、こっちを使いました。
参考
- LCMapString function (Windows)
- LCMapStringEx function (Windows)
- LCMapString を使ってダイレクトに文字列を変換する - 憂国のプログラマ Hatena版
日本語で OK …
というわけで、 API にしたがってそれっぽくラップしました。
こんなエラーでますが。無視します。きっとどこか引数間違えてる…。
コメントを見て奮闘してます…。
ところで、 SortKey っていうやつをやってみたのですが、返ってくる値がよくわかりません>< ググってみてもよくわからない。
もったいぶらないでくだされ~
というわけで、わかり次第また記事書きます。後味悪い…。