Bonjour,
je voudrais écrire une fonction qui compare le contenu de deux objets. Je voudrais faire quelque chose comme ça:
Le problème c'est que, dans le code ci-dessus, il compare les deux objets, et pas leur valeur. Donc result vaudra "false", alors que moi je voudrais qu'il soit "true", puisque les valeurs de b1 et de b2 sont identiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 bool AreEquals(Object left, Object right) { return (left == right); } void Test() { bool b1 = true; bool b2 = true; bool result = AreEquals(b1, b2); }
Alors j'ai essayé de caster mes objets de la façon suivante:
Mais ça ne compile pas: cannot implicitely convert type 'System.Type' to 'bool'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool AreEquals(Object left, Object right) { return ( (left.GetType()) left == (right.GetType()) right ); }
Et je ne parviens pas à comprendre quel est le problème. Je ne parviens pas non plus à trouver d'autres solutions. J'ai cherché du côté de Activator.CreateInstance(), mais je ne parviens pas à l'utiliser. J'ai l'impression que c'est une mauvaise piste.
Auriez-vous des idées?
Note: La raison pour laquelle j'ai besoin de faire ceci, c'est que je récupère dynamiquement les propriétés d'instances de classes via quelque chose comme:
et j'accède ensuite à la valeur de la propriété via myProperty.GetValue() qui me renvoie un objet de type Object.
Code : Sélectionner tout - Visualiser dans une fenêtre à part PropertyInfo myProperty = myObject.GetPropertiy("property name")
Partager