5

次のコードがあるとします。

string source = "Some Unicode String";
foreach( char value in source ) {

    int y = (int)value;

}

char から int へのキャストが失敗する可能性はありますか (そして、どのような状況で)?

4

2 に答える 2

8

いいえ、失敗することはありません。charの範囲は 0x0 ~ 0xFFFF (65535) ですが、intの範囲は -2,147,483,648 ~ 2,147,483,647 であるため、char のすべての値は int の範囲内に収まります。

于 2012-06-22T14:48:52.697 に答える
8

charからへの変換は、どんな値intでも失敗しません。char

.NET 4.0リファレンスから

.NET Framework は、Char 構造体を使用して Unicode 文字を表します。Unicode 標準は、コード ポイントと呼ばれる一意の 21 ビット スカラー番号で各 Unicode 文字を識別し、コード ポイントを 1 つ以上の 16 ビット値のシーケンスにエンコードする方法を指定する UTF-16 エンコード形式を定義します。各 16 ビット値の範囲は 16 進数 0x0000 ~ 0xFFFF で、Char 構造体に格納されます。 Char オブジェクトの値は、その 16 ビットの数値 (序数) 値です。

于 2012-06-22T14:49:11.543 に答える