Out of Memory

ごめん、忘れてた。

目次

Blog 利用状況

ニュース

2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

aetos

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

Microsoft MVP for Windows SDK July 2007 - February 2008, Microsoft MVP for Visual C++ February 2008 - June 2009
Microsoft MVP for Windows SDK
July 2007 - February 2008
Microsoft MVP for Visual C++
February 2008 - June 2009

アクセサリ

あわせて読みたい

e-Words

アフィリエイト

記事カテゴリ

書庫

日記カテゴリ

.NETの書式設定

Visual Studio International Packが正式公開されましたね。早速遊んでいる方も多いようです。

さて、通常、たとえば整数を16進数表記にする場合、

int i = 10;
string s = i.ToString( "x08" );

なんてコードで可能ですね。
では、International Pack の書式 "L" を使って漢字にしてみましょう。
int.ToString は IFormatProvider を引数に取れるので、こうですね。

int i = 10;
string s = i.ToString( "L", new EastAsiaNumericFormatter() );

…違います。
できてもよさそうなものなのですが、int.ToString の第2引数に渡せる IFormatProvider 実装は、CultureInfo か NumberFormatInfo だけです。それ以外は無視されます。

既にあちこちでサンプルが書かれていますが、こうしなければなりません。

int i = 10;
string s = string.Format( new EastAsiaNumericFormatter(), "{0:L}", i );

なんだかなぁ…
このような制限があるために、組み込みの整数型に対しては、IFormatProvider 実装クラスを自作しても、string.Format にパースできない形式の書式指定文字列を使うことができません。

お願いです。
IFormattable を実装するクラスを作るときは、FormatProvider を最大限尊重してあげてください。

投稿日時 : 2008年4月23日 16:05

Feedback

# re: .NETの書式設定 2008/04/23 17:19 myugaru

大人の事情なのかなあ。やな大人だなあ。

タイトル  
名前  
Url
コメント