본문 바로가기

컴퓨터 프로그래밍

c# 강좌 is as 연산자 형식 변환.

반응형

형식변환에는 두가진 버전이 있다. 업캐스팅과 다운캐스팅이다. 업캐스팅은 자식클래스의 객체가 부모클래스의 형태로 변환되는 것을 말하며, 다운캐스팅은 부모 클래스의 자식클래스의 형태로 변환되는것을 말한다. 

형식변환 예시

Dog  dog1 = new Dog();

Mammal mammal = dog1(); // 업캐스팅, 자식클래스가 부모클래스의 형태로 변환됨.

mammal.Nurse();

Dog dog2 = (Dog)mammal; // 다운캐스팅, 부모클래스가 자식클래스의 형태로 변환됨.

 

연산자 :   설명

is  : 객체가 해당 형식에 해당하는지를 검사하여 그 결과를 bool값으로 반환함

as : 형식 변환 연산자와 같은 역활을 합니다. 다만 형변환 연산자가 변환에 실패하는 경우 예외를 던지는 반면에 as연산자는 객체참조를 null로 만든다는 것이 다르다. 

이게 뭔말일까..

 

Mammal = 포유류 , 기반 클래스

Dog, Cat = 개, 고양이, 파생 클래스 Mammal을 상속받음

 

is 연산자의 사용 예제

Mammal mammal = new Dog();

Dog dog;

if (mammal is Dog)

{

dog = (Dog)mammal; // mammal 객체가 dog 형식임을 확인한 후 안전하게 형식 변환이 이루어짐.

dog.Bark();

}

 

as연산자의 사용 예제

Mammal mammal2 = new Cat();

Cat cat = mammal2 as Cat;

if (cat != null)// mammal2가 Cat형식 변환에 실패한다면 cat은 null이 됨 . 

{

cat.Meow();

}

일반적으로는 as를 사용하는게 권장된다고 합니다. 

 

반응형

'컴퓨터 프로그래밍' 카테고리의 다른 글

C# 강좌 프로퍼티.  (0) 2019.06.07
C# 강좌 추상클래스  (0) 2019.06.07
c# 강좌 업캐스팅과 다운캐스팅  (0) 2019.06.07
c# 강좌 인터페이스  (0) 2019.06.07
c# 공부 시작  (0) 2019.06.07