126 votes

Différence entre le mot-clé is et as

Veuillez dire quelle est la différence entre is et as mot-clé en C#

7 votes

Est-ce que c'est comme ça ou est-ce que c'est comme ça ? blogs.msdn.com/b/ericlippert/archive/2010/09/16/

3 votes

Si ce sujet vous intéresse, vous voulez probablement aussi savoir quelle est la différence entre les opérateurs "as" et "cast" : blogs.msdn.com/b/ericlippert/archive/2009/10/08/

0 votes

@EricLippert Ce lien est maintenant rompu.

1voto

Harry Points 1141

L'opérateur As est similaire à un cast, mais renvoie null au lieu d'une exception s'il échoue.

Et l'opérateur Is est utilisé pour vérifier si un objet est compatible avec un certain type. Il est généralement utilisé dans les instructions If.

1voto

KMån Points 7972

is : L'opérateur is est utilisé pour vérifier si le type d'exécution d'un objet est compatible avec un type donné.

as : L'opérateur as est utilisé pour effectuer des conversions entre des types compatibles.

object s = "this is a test";
string str=string.Empty;
if( s is string)
    str = s as string;

1voto

Shivprasad Koirala Points 1327

Jetez un coup d'œil à la vidéo youtube ci-dessous qui explique la différence de manière plus démonstrative et visuelle :-.

https://www.youtube.com/watch?v=IKmRtJcRX_I

Vous trouverez ci-dessous la réponse longue avec l'explication du code.

Le mot-clé "IS" est utile pour vérifier si les objets sont compatibles avec un type. Par exemple, dans le code ci-dessous, nous vérifions si l'objet "ocust" est un type de la classe "Customer".

object ocust = new Customer();

if (ocust is Customer)
{ 

Le mot clé "AS" permet de faire la conversion d'un type à un autre. Par exemple, dans le code ci-dessous, nous convertissons un objet en un type de données string. Si le mot-clé "AS" n'est pas capable de convertir le type, il retourne NULL.

object o = "somestring";
string str = o as string;

1voto

Tukaram Points 11

Les deux opérateurs sont utilisés pour le moulage de type sûr.

AS Opérateur :

L'opérateur AS vérifie également si le type d'un objet donné est compatible avec le nouveau type d'objet. Ce mot-clé vérifiera si le type d'un objet donné est compatible avec le nouveau type d'objet. S'il n'est pas compatible avec le nouveau type, il renvoie NULL.

Opérateur IS :

Cet opérateur vérifie si le type d'un objet est compatible avec le nouvel objet. S'il est compatible, il renvoie true sinon false.

1voto

vzades Points 56
MyClass myObject = (MyClass) obj;

vs

MyClass myObject = obj as MyClass;

La seconde renverra null si obj n'est pas une MyClass, plutôt que de lancer une exception de class cast.

ne retournera que vrai ou faux

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X