Partager via


as (Référence C#)

Mise à jour : novembre 2007

L'opérateur as est utilisé pour effectuer certains types de conversions entre des types référence compatibles. Par exemple :

   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());
               }

           }
       }
   }

Notes

L'opérateur as est semblable à une opération de cast. Toutefois, si la conversion n'est pas possible, as retourne null au lieu de déclencher une exception. Prenons l'expression suivante :

expression as type

Elle est équivalente à l'expression suivante, si ce n'est que expression n'est évaluée qu'une seule fois.

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

Notez que l'opérateur as n'effectue que des conversions de référence et des conversions boxing. L'opérateur as ne permet pas d'effectuer d'autres conversions, telles que des conversions définies par l'utilisateur, qui doivent plutôt être effectuées à l'aide d'expressions de cast.

Exemple

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

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 6 Conversions

  • 7.9.11 Opérateur as

Voir aussi

Concepts

Guide de programmation C#

Référence

Mots clés C#

is (Référence C#)

?:, opérateur (Référence C#)

Mots clés des opérateurs (Référence C#)

Autres ressources

Référence C#