에서 'K'를 :다시 assining 나는 다음과 같은 코드 조각을 작성했습니다 VAR
var i=5;
i='K';
코드는 오류없이 컴파일되고있다. 내 개념에 관한 한, 나는 var에 값을 다시 할당 할 수 없다. 정수 5를 i에 할당 했으므로. i의 타입은 int입니다. 그렇다면 내가 왜 'K'문자를 할당 할 수 있습니까?
에서 'K'를 :다시 assining 나는 다음과 같은 코드 조각을 작성했습니다 VAR
var i=5;
i='K';
코드는 오류없이 컴파일되고있다. 내 개념에 관한 한, 나는 var에 값을 다시 할당 할 수 없다. 정수 5를 i에 할당 했으므로. i의 타입은 int입니다. 그렇다면 내가 왜 'K'문자를 할당 할 수 있습니까?
char
은 int
으로 암시 적으로 캐스트 될 수 있기 때문에. 변수 i
의 유형은 여전히 int
일 수 있습니다. i.GetType()
-을 사용하여이를 테스트 할 수 있으며 그 값은 문자 'K'
(즉, 75
)의 코드 포인트가됩니다. 즉
, 당신의 코드를 작성하는 것과 같습니다
int i = 'K';
는 "지금까지 내 개념에 관한 한, 나는 VAR에 값을 다시 할당 할 수 없습니다."- 그건 올바르지 않습니다. 유형 (다른 변수의 선언 된 유형을 변경할 수없는 것처럼)을 변경할 수는 없지만 같은 유형의 다른 값을 다시 할당 할 수 있습니다 (또는 캐스트 될 수있는 값을 다시 할당 할 수 있습니다 그렇듯이).
i
은 처음 할당 할 때 암시 적으로 정수로 입력됩니다. 그런 다음 정수에 char 값을 할당하려고합니다.
'int i = 'K';'는 완벽하게 유효합니다. –
가능한 중복 [C# char to int] (http://stackoverflow.com/questions/239103/c-sharp-char-to-int) – Jehof