언어 자료구조 알고리즘/C# 언어 문법

10.Casting

언제나휴일 2009. 8. 19. 05:47
반응형

Casting

 

다루는 내용

 - 사용자 정의 변환 (implicit operator, explicit operator)

 - type casting(형식 변환)을 위해 제공되는 Help Class들

 

C#도 C나 C++처럼 컴파일 타임에 정적으로 형식이 지정이 된다. 

즉, 변수 선언시 형식이 지정되며 다른 형식의 값을 저장하기 위해서는 type casting(형식변환)이 필요하다.

 

형식 변환에는 암시적 변환, 명시적 변환, 사용자 정의 변환, Help Class를 통한 변환으로 구분할 수가 있다.

 

먼저, 암시적 변환이 지원되는 경우는 변환과정을 통해 데이터의 손실이 되지 않는 형식간 변환에 제공이 되고 있다.

예를 들어 작은 정수 형식에서 큰 정수형으로의 변환 및 파생 클래스에서 기본 클래스로의 변환등이 있을 수 있다.

 

명시적 변환은 호환은 되지만 변환과정을 통해 데이터의 손실이 있을 수 있는 형식간 변환에 제공이 되고 있다.

예를 들어 큰 정수 형식에서 작은 정수형으로의 변환을 들 수 있다.

 

사용자 정의 변환은 사용자가 정의한 형식에 연산자를 중복정의함으로써 암시적 혹은 명시적 변환을 가능하게 하는 것을 말한다.

암시적 변환을 위해서는 public static implicit operator 자신의 형식명(입력형식 인자명)을 추가해 주어야 한다.

명시적 변환을 위해서는 public static explicit operator 자신의 형식명(입력형식 인자명)을 추가해 주어야 한다.

 

Look & Feel & Think   

 

테스트를 위해 공통적으로 사용할 형식 : MemberInfo

 

사용자 정의 변환 중에 암시적 변환에 관련된 연산자 정의

 

암시적 변환으로 사용 예

 

사용자 정의 변환 중에 명시적 변환에 관련된 연산자 정의

 

암시적 변환으로 사용이 안 되고 있음

 

명시적 변환으로 사용이 되고 있음

 

형식 변환을 위한 클래스 중에서 BitConverter와 Convert는 기본 형식과 Stirng, byte[] 간에 변환을 하는 메소드들을 제공해 주고 있다.

 Look & Feel & Think   

 

형식 변환을 Convert클래스에서 제공되는 다양한 static 메소드들을 목적에 맞게 약간 변형해 본 예이다.

 

다음은 형식변환에 필요한 BitConverter 클래스의 static 메소드를 사용하는 예이다.

 

 

반응형

'언어 자료구조 알고리즘 > C# 언어 문법' 카테고리의 다른 글

15. 상속  (0) 2009.08.19
14.정적 클래스 및 정적 멤버  (0) 2009.08.19
13.메소드  (0) 2009.08.19
12. 속성(Property)  (0) 2009.08.19
11.Class  (0) 2009.08.19
9.String  (0) 2009.08.19
8. Object  (0) 2009.08.19
7. 배열  (0) 2009.08.19
6. valuetype 기본 형식  (0) 2009.08.19
5. .NET Framework  (0) 2009.08.19