C# 클래스 - 형변환

C# 2016. 6. 8. 00:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Parent
{
    public void foo()
    {
        System.Console.WriteLine("Foo!");
    }
}
public class Child : Parent
{
    public void foo2()
    {
        System.Console.WriteLine("Foo2!");
    }
}
 
Parent something = new Child();
something.foo();
//Child stupid = something; // 컴파일 에러
Child smart = something as Child; // 잘 됨
if (something is Child)
    System.Console.WriteLine("something is Child!");
if (smart is Parent)
    System.Console.WriteLine("smart is Parent!");
cs


실행 결과 - 

Foo!

something is Child!

smart is Parent!


자식 -> 부모로의 형변환은 암묵적으로 가능하다.

부모 -> 자식으로는 안된다.

16번 라인은 C#에서의 자식->부모로의 암묵적 형변환을 보여주고 있다.

18번 라인은 부모->자식으로의 암묵적 형변환을 시도하였으나, 컴파일이 되지 않는다.


as 키워드는 캐스팅이 가능할 경우 캐스팅하고, 실패했을 경우 null을 리턴한다.

is 키워드는 실제로 캐스팅을 하지는 않고, 캐스팅이 가능한지 여부를 검사하여 bool 형으로 반환한다.

'C#' 카테고리의 다른 글

C# 클래스 - Object 클래스  (0) 2016.06.08
C# 클래스 - 상속  (0) 2016.06.08
C# 클래스 - 프로퍼티(property)  (0) 2016.06.07
C# 클래스 - 생성자  (0) 2016.06.07
C# 배열  (0) 2016.06.07
Posted by RPG만들기XP
,