(ホントかよ・・?)
ってことでやってみた。
Windows7(日本語)SP1 .Net4.5.1(4.5.51209) VS2013Pro 12.0.31101.00 Upd4
こんなかんじのコード。
public static void hoge(string s)
{
int a;
bool r = int.TryParse(s, out a);
Console.WriteLine(r.ToString());
}
"1" | True | アスキーの 1 なら当然変換できる |
"1" | False | 全角 1 は変換できない |
"一" | False | 漢数字 一 は変換できない |
ついでなので、
char.IsDigit("1", 0) | True | アスキーの 1 |
char.IsDigit("1", 0) | True | 全角 1 |
char.IsDigit("一", 0) | False | 漢数字 一 |
もうひとつ。
char.IsNumber("1", 0) | True | アスキーの 1 |
char.IsNumber("1", 0) | True | 全角 1 |
char.IsNumber("一", 0) | False | 漢数字 一 |
結論
カルチャに依存するかもしれないが、全角アラビア数字や漢数字は変換できなかった。
漢数字変換は特に、表記法や位取り法が決定的でないから、考えただけでも嫌気がするぐらい面倒なので、これがシステムでサポートされているとは考えにくい。