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

Můžete použít as operátor pro provádění určitých typů převody mezi typy kompatibilní odkazů nebo typy připouštějící hodnotu 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());
            }

        }
    }
}

Jak ukazuje příklad, potřebujete porovnat výsledek as výraz s null ke kontrole, pokud je úspěšný převod.As the example shows, you need to compare the result of the as expression with null to check if a conversion is successful. Od verze C# 7.0, můžete použít je výraz pro testování, převod bude úspěšné a podmíněně přidělit proměnné v případě, že převod je úspěšný.Beginning with C# 7.0, you can use the is expression both to test that a conversion succeeds and conditionally assign a variable when the conversion succeeds. V mnoha případech je stručnější než při použití as operátor.In many scenarios, it's more concise than using the as operator. Další informace najdete v tématu vzor typu část is operátor článku.For more information, see the Type pattern section of the is operator article.

PoznámkyRemarks

as Operátor je jako operace přetypování.The as operator is like a cast operation. Nicméně, pokud převod není možný, as vrátí null namísto vyvolání výjimky.However, if the conversion isn't possible, as returns null instead of raising an exception. Vezměte v úvahu v následujícím příkladu:Consider the following example:

expression as type  

Je ekvivalentem následujícího výrazu s výjimkou, že kód expression proměnná je vyhodnocen 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, as operátor provádí pouze převody odkazů, s možnou hodnotou Null převody a převody zabalení.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ísto toho provádět pomocí výrazy 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