Très souvent, en C#, il doit vous arriver d’écrire ce type de code :
[csharp] if (user is AdminUser){
var admin = (AdminUser)user;
// …
}
[/csharp]
Le problème avec ce type de code est qu’il faut vérifier le type de « user » deux fois :
- La première fois avec l’opérateur is,
- La seconde fois lors que cast.
Pour rendre votre code plus performant et plus lisible, vous pourriez utiliser l’opérateur as à la place. Voici le code équivalent :
[csharp] var admin = user as AdminUser;if (admin != null)
{
// …
}
[/csharp]
L’opérateur as permet de faire un cast sans déclencher d’exception. Si le cast n’est pas possible, il retournera null.
A vous d’essayer !
Vous l’aurez compris, l’opérateur as peut être utilisé sans modération !
C’est en effet une très bonne pratique d’utiliser as.
Juste une ajout peut être, l’opérateur « as » ne fonctionne qu’avec des types références ou « nullable ».
Donc si on veut tester si une variable est d’un type valeur (int par exemple) on est obligé d’utiliser « is ».