C#2010. 3. 15. 15:37

#. as 연산자
 - as 연산자는 형식 변환 연산시 사용됩니다. 다만 캐스트 연산과 다른 점은 변환이 가능하지 않는 경우 예외를 발생하지 않고 null이 반환된다는 것입니다. 즉, as 연산자는 as 뒤에 나오는 타입이 아니면 null을 반환 합니다.
 - as 연산자는 오직 참조 변환과 boxing 변환만을 수행하며, 사용자 정의 변화과 같은 다른 변환을 수행할 수 없습니다.

ex>
    static void Main()
    {
        object[] objArray = new object[3];
        objArray[0] = "hello";
        objArray[1] = 123;
        objArray[2] = null;

        for (int i = 0; i < objArray.Length; ++i)
        {
            string s = objArray[i] as string;
            Console.Write("{0}:", i);
            if (s != null)
            {
                Console.WriteLine("'" + s + "'");
            }
            else
            {
                Console.WriteLine("not a string");
            }
        }
    }

결과 값>
0:'hello'
1:not a string
2:not a string


#. is 연산자
 - 특정 객체와의 타입과 호환이 가능한지 확인하는 연산자 입니다.
 - 호환이 가능한 경우 true를 반환하고, 호환이 가능하지 않은 경우 예외를 발생하지 않고 false를 반환합니다.
 - is 연산자는 참조 변환, boxing 변환, unboxing 변환만을 수행하며, 사용자 정의 변환과 같은 다른 변환은 고려되지 않습니다.

ex>
string strTemp = new string();

Bool b1 = (strTemp is string);
Bool b2 = (strTemp is int);

Console.WriteLine("b1: {0}, b2: {1}", b1, b2);

결과 값>
b1: true, b2: false
Posted by 쿵캉켕