En C# en utilisant VS2005, si j'ai une variable de type Object
, auquel j'assigner un objet MyObjectType
par coulée comme suit:C# dans VS2005: déterminer quel type d'un objet est vraiment
MyObjectType myObj = GetMyObject();
Object obj = (Object)myObj;
Y at-il moyen pour déterminer que obj
est en fait un MyObjectType
et pas seulement un Object
?
@John: mais obj n'est pas un objet et pas un MyObjectType? –
@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
@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. –