as (C#-Referenz)as (C# Reference)

Sie können den as-Operator verwenden, um bestimmte Arten von Konvertierungen zwischen kompatiblen Verweistypen oder auf NULL festlegbaren Typen durchzuführen.You can use the as operator to perform certain types of conversions between compatible reference types or nullable types. Der folgende Code zeigt ein Beispiel.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());
            }

        }
    }
}

HinweiseRemarks

Der as-Operator kann mit einem Umwandlungsvorgang verglichen werden.The as operator is like a cast operation. Wenn die Konvertierung jedoch nicht möglich ist, gibt as null zurück, statt eine Ausnahme auszulösen.However, if the conversion isn't possible, as returns null instead of raising an exception. Betrachten Sie das folgende Beispiel:Consider the following example:

expression as type  

Der Code ist äquivalent zu folgendem Ausdruck, jedoch wird die expression-Variable nur einmal ausgewertet.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  

Beachten Sie, dass der as-Operator nur Verweis- und Boxingkonvertierungen sowie Konvertierungen mit Nullwert durchführt.Note that the as operator performs only reference conversions, nullable conversions, and boxing conversions. Der as-Operator kann keine anderen Konvertierungen wie z.B. benutzerdefinierte Konvertierungen durchführen, die stattdessen mithilfe der Cast-Ausdrücke ausgeführt werden sollten.The as operator can't perform other conversions, such as user-defined conversions, which should instead be performed by using cast expressions.

BeispielExample

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
*/

C#-ProgrammiersprachenspezifikationC# Language Specification

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation.For more information, see the C# Language Specification. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.The language specification is the definitive source for C# syntax and usage.

Siehe auchSee Also