2012-06-27 5 views
0

에서 'K'를 :다시 assining 나는 다음과 같은 코드 조각을 작성했습니다 VAR

var i=5; 
i='K'; 

코드는 오류없이 컴파일되고있다. 내 개념에 관한 한, 나는 var에 값을 다시 할당 할 수 없다. 정수 5를 i에 할당 했으므로. i의 타입은 int입니다. 그렇다면 내가 왜 'K'문자를 할당 할 수 있습니까?

+2

'int i = 'K';'는 완벽하게 유효합니다. –

+0

가능한 중복 [C# char to int] (http://stackoverflow.com/questions/239103/c-sharp-char-to-int) – Jehof

답변

8

charint으로 암시 적으로 캐스트 될 수 있기 때문에. 변수 i의 유형은 여전히 ​​int 일 수 있습니다. i.GetType() -을 사용하여이를 테스트 할 수 있으며 그 값은 문자 'K' (즉, 75)의 코드 포인트가됩니다. 즉

, 당신의 코드를 작성하는 것과 같습니다

int i = 'K'; 

는 "지금까지 내 개념에 관한 한, 나는 VAR에 값을 다시 할당 할 수 없습니다."- 그건 올바르지 않습니다. 유형 (다른 변수의 선언 된 유형을 변경할 수없는 것처럼)을 변경할 수는 없지만 같은 유형의 다른 값을 다시 할당 할 수 있습니다 (또는 캐스트 될 수있는 값을 다시 할당 할 수 있습니다 그렇듯이).

0

i은 처음 할당 할 때 암시 적으로 정수로 입력됩니다. 그런 다음 정수에 char 값을 할당하려고합니다.

관련 문제