2010-09-21 8 views

Répondre

2

Absolument:

if (obj is MyObjectType) 
{ 
    ... 
} 

Ou, si vous souhaitez utiliser, puis certains membres de celui-ci:

MyObjectType mot = obj as MyObjectType; 
if (mot != null) 
{ 
    ... 
} 

Notez que ceux-ci fonctionnera même si obj fait référence à un objet dérivé de MyObjectType . Si vous voulez seulement une correspondance exacte, vous devez utiliser:

if (obj != null && obj.GetType() == typeof(MyObjectType)) 

... mais c'est un cas d'utilisation assez rare dans mon expérience.

+0

@John: mais obj n'est pas un objet et pas un MyObjectType? –

+1

@Craig: Non, vous lui avez assigné un 'MyObjectType', donc c'est un' MyObjectType', même s'il est stocké dans une variable de type 'object'. – Timwi

+0

@Craig: 'obj' est une variable, pas un objet du tout. La * valeur * de 'obj' n'est pas non plus un objet - c'est une référence. Cela peut être une référence à une instance de 'Object', ou à une instance de' MyObjectType', ou un autre type ... ou null. Notez que le type d'un objet lui-même ne change jamais, même si vous enregistrez une référence dans un autre type de variable. –

0

Si vous voulez vérifier si obj est un MuObjectType vous pouvez écrire

if(obj is MyObjectType) 

Ce retour true si obj est un enfait MyObjectType, sinon false.

Questions connexes