Je pensais que je suis tout vu mais ceci ... :)
Je travaillais sur un graphique générique de type chaîne de type, P>
Nodes.First().Value "A" Nodes.First().Value == "A" false Nodes.First().Value.ToString() == "A" true
3 Réponses :
Si vous utilisez la méthode Virtual == code> est une méthode statique et donc pas virtuelle. La sélection de laquelle
== code> à utiliser est effectuée au moment de la compilation, pas d'exécution. Selon le type de compilation de l'objet, il choisit probablement la mise en œuvre de
== code> pour des objets comparés par référence. P>
Equals CODE>. Ceci fonctionnera à votre disposition. P>
Si la valeur code> code> de vos nœuds est fera une comparaison par référence au lieu de comparer des chaînes. p> p> objet code>, l'opérateur
== code> dans
Si les types ne sont pas complètement connus à l'avant (c.-à-d. code> code> est seulement connu sous le nom de bien sûr, vous pourriez lancer, mais dans ce cas, vous auriez besoin d'une double distribution ( Si vous savez que les deux objets sont le même type (c'est-à-dire deux valeurs t code>, et ne sont pas strictement em> connu pour être connu une chaîne), utilisez des choses comme:
(objet) (objet) code>) qui est laid. p>
t code>), vous pouvez utiliser: p>
EqualityComparer<T>.Default.Equals(x,y)
Quel est le type statique de la propriété code> code>?
Êtes-vous sûr que la valeur est définie comme: valeur T publique {obtenir; ensemble; }