본문 바로가기
프로그래밍/Unity

[c#] is/as 연산자

by 뽀도 2016. 12. 26.

is/ as 연산자


is -> 객체가 해당하는 형식에 해당하는지 검사, 결과를 bool 값으로 반환
as -> 형식 변환 연산자와 같은 역할을 한다. as 연산자는 형변환 실패시 객체 참조를 null로 만든다.
       이란 적으로 형변환 연산자 대신 as 연산자를 사용하는 쪽이 권장된다. 형변환에 실패하더라도 예외가 일어나 갑자기 코드의 실행이 점프하는

       일이 없고,  코드 관리가 더 수월하다. 단 as 연산자는 참조 형식에 대해서만 사용이 가능하므로 값 형식의 객체는 기존의 형식 변환 연산자를

       사용해야 한다.

 


----------------------------------------------
 TypeCasting/MainApp.cs
----------------------------------------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study_csharp
{

    class Mammal
    {
        public void Nurse()
        {
            Console.WriteLine("Nurse()");
        }

    }
    class Dog : Mammal
    {
        public void Bark()
        {
            Console.WriteLine("Bark()");
        }
    }
    class Cat : Mammal
    {
        public void Meow()
        {
            Console.WriteLine("Meow()");
        }
    }

 

    class MainApp
    {
        static void Main(string[] args)
        {
            Mammal mammal = new Dog();
            Dog dog;

            if(mammal is Dog)
            {
                dog = (Dog)mammal;
                dog.Bark();
            }

            Mammal mamal2 = new Cat();
            Cat cat = mamal2 as Cat;

            if (cat != null)
                cat.Meow();

            Cat cat2 = mammal as Cat;
            if (cat2 != null)
                cat2.Meow();
            else
                Console.WriteLine("cat2 is not a cat");

        }
    }
}
 

 

반응형

'프로그래밍 > Unity' 카테고리의 다른 글

델리게이트  (0) 2017.01.05
람다  (0) 2017.01.05
[c#] class 객체  (1) 2016.12.26
[C#] 메소드 관련  (0) 2016.12.21
[C#] DateTime 주의 사항  (0) 2016.07.31

댓글