C#은 컴파일 타임에 정적으로 데이터 형이 지정되므로, 변수의 형을 변환하지 않으면 

다시 선언하거나 다른 형의 값에 넣는 것이 불가능 하다.

ex) int형을 String 형으로 변환하여 넣을 수 없다.

그렇다면 C# 에서의 변수나 매개변수의 값을 복사해야 하는 경우 어떻게 할까?

1) 암시적 변환

파생클래스 -> 기본클래스 혹은 int16 -> int32 등 변환을 할 때, 변환에 대한 안정성과 데이터 손실에 대한 리스크 없이 데이터 형이 변환되는 것

동일 데이터 형의 작은 타입 -> 동일 데이터 형의 큰 타입으로 암시적 변환 수행

2) 명시적 변환 (캐스트)

암시적 변환은 [작은 데이터형(long)]을 [큰 데이터 형(float, double)]으로 변환하는 과정이기 때문에 값의 손실이 없다.

반대의 경우에는 값 손실이 발생할 수 있다. 이 경우 명시적 형 변환을 사용한다.

출처 : https://guslabview.tistory.com/68

 

Object -> 특정 클래스 로 갈떄, 혹은 int32 -> int16 등 변환시 값의 손실이 발생할 수 있거나, 변환이 실패할 수 있는 경우 명시적 전환을 사용함.

 

Posted by 팡다츄
,