1 sur 1 ont trouvé cela utile - Évaluez ce sujet

as (Référence C#)

Utilisé pour exécuter des conversions entre des types référence compatibles. Par exemple :

string s = someObject as string;
if (s != null)
{
    // someObject is a string.
}

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. De manière plus formelle, une expression de la forme,

expression as type

est équivalente à,

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

si ce n'est que expression est évaluée une seule fois.

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.

// cs_keyword_as.cs
// The as operator.
using System;
class Class1
{
}

class Class2
{
}

class MainClass
{
    static void Main()
    {
        object[] objArray = new object[6];
        objArray[0] = new Class1();
        objArray[1] = new Class2();
        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");
            }
        }
    }
}

Sortie

 
0:not a string
1:not a string
2:'hello'
3:not a string
4:not a string
5:not a string

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

  • 6 Conversions

  • 7.9.10 Opérateur as

Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ
L'opérateur 'as' peut fonctionner même si l'opérande "expression" est null.

Si l'opérande "expression" est null, l'opérateur as fonctionnera sans problème et retournera null.

object objetNull = null;
string s = objetNull as string;
//s vaut null

Cela implique que si la valeur retournée par l'opérateur as est null alors soit :

  • L'objet "expression" n'est pas du type "type".
  • L'objet "expression" est null.