as (référence C#)
Vous pouvez utiliser l'opérateur d' as pour exécuter certains types de conversions entre des types référence compatibles ou l' types Nullable. Le code suivant est fourni à titre d'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 lever une exception. Prenons l'exemple suivant :
expression as type
Le code équivaut à l'expression suivante sauf que la variable d' expression est évaluée qu'une seule fois.
expression is type ? (type)expression : (type)null
Notez que l'opérateur d' as exécute uniquement des conversions de référence, des conversions nullables, et les conversions boxings. L'opérateur d' as ne peut pas exécuter d'autres conversions, telles que les conversions définies par l'utilisateur, qui doivent plutôt être exécutées à l'aide de 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, voir la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.
Voir aussi
Référence
Mots clés des opérateurs (référence C#)