as (C# Reference)

 

Updated: July 20, 2015

You can use the as operator to perform certain types of conversions between compatible reference types or nullable types. The following code shows an example.

    
    class csrefKeywordsOperators
    {
        class Base
        {
            public override string  ToString()
            {
 	             return "Base";
            }
        }
        class Derived : Base 
        { }

        class Program
        {
            static void Main()
            {

                Derived d = new Derived();

                Base b = d as Base;
                if (b != null)
                {
                    Console.WriteLine(b.ToString());
                }

            }
        }
    }

The as operator is like a cast operation. However, if the conversion isn't possible, as returns null instead of raising an exception. Consider the following example:

expression as type  

The code is equivalent to the following expression except that the expression variable is evaluated only one time.

expression is type ? (type)expression : (type)null  

Note that the as operator performs only reference conversions, nullable conversions, and boxing conversions. The as operator can't perform other conversions, such as user-defined conversions, which should instead be performed by using cast expressions.

    class ClassA { }
    class ClassB { }

    class MainClass
    {
        static void Main()
        {
            object[] objArray = new object[6];
            objArray[0] = new ClassA();
            objArray[1] = new ClassB();
            objArray[2] = "hello";
            objArray[3] = 123;
            objArray[4] = 123.4;
            objArray[5] = 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");
                }
            }
        }
    }
    /*
    Output:
    0:not a string
    1:not a string
    2:'hello'
    3:not a string
    4:not a string
    5:not a string
    */

For more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage.

C# Reference
C# Programming Guide
C# Keywords
is
?: Operator
Operator Keywords

Show: