2012-08-07 2 views
3

가능한 중복 :
C#, int or Int32? Should I care?타입 캐스팅 중에 "int"또는 "Int32"를 사용 하시겠습니까?

MouseMoved event 그렇게 가진 트리거 방식 도착 때 나는 GetPosition(this)을 사용하고 있습니다 : 지금까지 내가 보는 바와 같이

Point pt = e.GetPosition(this); 

모두 다음과 같은 유형의 작품을 캐스팅 만 어느 것이 추천되고 왜?

int x = (int)pt.X; 
int x = (Int32)pt.X; 
+0

samething, 그 INT32 될 것입니다 IL의 INT로 변환 할 때 너무 @amit이 – S3ddi9

+0

을 호반 걱정하지 마십시오는 것이 좋습니다 언어가 제공하는 데이터 유형을 사용합니다. C#의 경우 int입니다. – AMissico

+0

나의 경험칙은 문서에 명시된 데이터 유형을 사용하는 것입니다. 만약'Point'의'X'와'Y' 속성이'int's로 문서화되어 있다면, 그것은 제가 사용할 것입니다. – HABO

답변

8

그들은 똑같은 일을합니다 - 그들은 심지어 같은 일리노이로 컴파일됩니다. (당신이 어떤 미친 생각이 없다고 가정하면 Int32 어딘가에 ...

int은 의 별칭 일뿐입니다.

(이것은 단지 주조에 적용되지 않습니다 -. 그것은 거의 모든 유형의 이름이 사용됩니다입니다)

+0

그들은'Int32'는 변수 나 속성 접근 같은 어떤 값이나 (Int32'라고 불리는 다른 네임 스페이스에 타입을 가질 수있는) 타입을 가질 수있는 일반적인 식별자이기 때문에 다른 의미를 가지고 있습니다. 반면에'int'는 항상 (특별한) 타입입니다. 한 가지 결과는 무언가의 부정 (단항)을 던지면 **'(int) -pt.X' **라고 할 수 있습니다. 그러나 **'(Int32) -pt.X' **는'Int32'가 주어진 범위 내에서 주어진 이름을 가진 타입 일지라도 항상 빼기 (2 진 빼기)로 간주됩니다. 물론'(Int32) (-pt.X)'로 수정할 수 있습니다. –