[Unity][C#] as연산자, is연산자

jh Seo·2022년 9월 20일
0

유니티

목록 보기
19/50

as 연산자는

객체에서 캐스팅 할 때 형변환이 가능하면 형변환을 수행하고, 그렇지 않으면 null 값을 return하는 연산자다.

명시적 형변환을 하는 과정에서 System.InvalidCastException오류를 뱉어낼 때가 있다.
예를 들어 부모 객체를 자식객체로 캐스팅 하려할 때라던지,

이럴 땐 컴파일러가 에러를 잡지 못하고 실제 프로그램을 실행해야 에러가 발생한다.

이럴때 유용하게 사용하는 연산자로

//parent가 부모클래스 children이 자식클래스일 때 
c= parent as children
if(c !=null)
	Method();

이런식으로 사용 할 수 있다.

  • as연산자는 call by reference 값 사이에서만 사용할 수 있으며, call by value값들 사이에선 사용할수 없다

is 연산자

is 연산자는 형변환이 가능한지를 bool형으로 return한다.

is연산자로 형변환이 가능한지 체크 후 바로 값을 할당 받을 수 있다.

object greeting = "Hello, World!";
if (greeting is string message)
{
    Console.WriteLine(message.ToLower());  // output: hello, world!
}

이런식으로 object형의 greeting이 string으로 변환될 수 있는지 체크한다.
object형은 모든 자료형의 부모이므로 string형으로 형변환 후 messege변수에 넣어준다.

profile
코딩 창고!

0개의 댓글