C# 기본 문법(UpCasting, DownCasting, is, as)

로젠·2024년 4월 24일
0

게임 프로그래밍

목록 보기
18/49
post-thumbnail

UpCasting

업 캐스팅은 자식에서 부모로 형 변환해 주는 것으로 암시적 캐스팅이다. 업 캐스팅을 할 때 자식 클래스의 변수나 함수에 접근은 불가능하다.

class Character
{
	int a;
}
class Player : Character
{
	int b;
}
void Start()
{
	Player player = new Player();
    Character character = player; //Up-Castring
}

DownCasting

다운 캐스팅은 부모를 자식으로 형 변환해 주는 것으로 명시적 캐스팅이다. 업 캐스팅을 하고 다운 캐스팅을 할 때 업 캐스팅을 하기 전 클래스가 같은 클래스여야만 한다.

class Character
{
	int a;
}
class Player : Character
{
	int b;
}
void Start()
{
	Player player = new Player();
    Character character = player;
    Player player2 = (Player)Character; //Down-Castring
}

is

캐스팅이 가능한지 불가능한지 확인해 주고 캐스팅이 가능하면 True 불가능하면 False 값을 준다.

class Character
{
	int a;
}
class Player : Character
{
	int b;
}
void Start()
{
	Player player = new Player();
    Character character = player;
    Player player2 = (Player)Character;
    bool bPlayer = character is Player; //True
    bool bMonster = character is Character; //False
}

as

캐스팅이 가능하면 캐스팅을 한 뒤 객체를 준다. 반대로 캐스팅이 불가능하면 Null을 준다.

class Character
{
	int a;
}
class Player : Character
{
	int b;
}
void Start()
{
	Player player = new Player();
    Character character = player;
    Player player2 = (Player)Character;
    Player player3 = character as Player; //캐스팅 성공
    Character character2 = character as Character; //Null
}

0개의 댓글