2012-06-27 2 views
0

Я написал кусок кода следующим образом:Re-assining «K» в вар

var i=5; 
i='K'; 

код компилируется без ошибок. Что касается моей концепции, я не могу повторно назначить значение в var. Поскольку я назначил целое число от 5 до i. тип i - int. Тогда почему это позволяет назначить char 'K' в i?

+2

'int i = 'K';' совершенно законно. –

+0

Возможный дубликат [C# char to int] (http://stackoverflow.com/questions/239103/c-sharp-char-to-int) – Jehof

ответ

8

Потому что char может быть неявно литован на int. Тип переменной i все равно будет int - вы можете проверить это с помощью i.GetType() - и его значение будет кодовым числом символа 'K' (а именно, 75).

Другими словами, ваш код эквивалентно записи:

int i = 'K'; 

«Что касается моей концепции, то я не могу повторно присвоить значение в вар.» - Это не правильно. Вы не можете изменить тип неявно типизированной переменной (так же, как вы не можете изменить объявленный тип любой другой переменной), но вам разрешено повторно назначить ему другое значение того же типа (или тот, который может быть добавлен как это).

0

i неявно вводится как целое число во время первого назначения. Затем вы пытаетесь присвоить значение char целому числу.

Смежные вопросы