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
Référence
Mots clés des opérateurs (Référence C#)