0

次のようなコードを書きました。

var i=5;
i='K';

コードはエラーなしでコンパイルされています。私のコンセプトに関する限り、var に値を再割り当てすることはできません。整数 5 を i に割り当てたので。i の型は int です。では、なぜ i に char 'K' を割り当てることができるのでしょうか?

4

2 に答える 2

8

acharは暗黙的に an にキャストできるためintです。変数の型iは変わらずint– を使用してこれをテストできますi.GetType()– であり、その値は文字のコードポイント'K'(つまり、75) です。

つまり、コードは次のように書くのと同じです。

int i = 'K';

「私のコンセプトに関する限り、var に値を再割り当てすることはできません。」– それは正しくありません。暗黙的に型指定された変数の型を変更することはできませんが(他の変数の宣言された型を変更できないのと同様)、同じ型の別の値 (またはそのようにキャストできる値) を再割り当てすることはできます。 )。

于 2012-06-27T18:20:07.033 に答える
0

i最初の代入時に整数として暗黙的に型指定されます。次に、char 値を整数に割り当てようとしています。

于 2012-06-27T18:21:43.977 に答える