as (Referenční dokumentace jazyka C#)as (C# Reference)

Můžete použít as operátor provést určité typy převody mezi kompatibilní odkazové typy nebo typy s možnou hodnotou Null.You can use the as operator to perform certain types of conversions between compatible reference types or nullable types. Následující kód ukazuje příklad.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());
            }

        }
    }
}

PoznámkyRemarks

as Operátor je jako operaci přetypování.The as operator is like a cast operation. Nicméně, pokud není možné, převod as vrátí null místo vyvolání k výjimce.However, if the conversion isn't possible, as returns null instead of raising an exception. Podívejte se na následující příklad:Consider the following example:

expression as type  

Kód je ekvivalentní výrazu následující vyjma toho, že expression proměnná vyhodnotí pouze jednou.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  

Všimněte si, že as operátor provádí pouze převody odkazů, s možnou hodnotou Null převody a zabalení převody.Note that the as operator performs only reference conversions, nullable conversions, and boxing conversions. as Operátor nelze provádět jiné převody, jako je například uživatelem definované převody, které by měli místo toho provádět pomocí výrazů přetypování.The as operator can't perform other conversions, such as user-defined conversions, which should instead be performed by using cast expressions.

PříkladExample

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

Specifikace jazyka C#C# Language Specification

Další informace najdete v tématu Specifikace jazyka C#.For more information, see the C# Language Specification. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.The language specification is the definitive source for C# syntax and usage.

Viz takéSee Also

Referenční dokumentace jazyka C#C# Reference
Průvodce programováním v jazyce C#C# Programming Guide
Klíčová slova jazyka C#C# Keywords
isis
?: – operátor?: Operator
Klíčová slova operátorůOperator Keywords