2011-02-02 3 views
5

J'ai une classe semble tout à fait comme ceci:Comparer deux types

object value; 
Type type; 

Lorsque je crée l'objet que je mets le type du type de l'objet.

Comment puis-je comparer ce type avec un autre type?

Si, par exemple le type est String:

type.Equals(String) 

et

type == String 

ne fonctionne pas.

Répondre

11

Dans ce contexte, vous comparez votre instance Type avec le résultat de typeof(T), où T est le type que vous souhaitez comparer.

bool objectIsString = myType == typeof(string); 
1

bien cela devrait fonctionner

bool isSameType = (value != null && value.GetType() == type); 
0

Type.Equals() exige que vous passez aussi un type. Ainsi, transformer la chaîne en un type:

type.Equals(GetType(string)) 
0
if(typeitem is string) 
{ 
    // Your Code 
}