J'ai deux objets en C # et je ne sais pas si c'est booléen ou tout autre type. Cependant, lorsque j'essaye de comparer ces C #, je ne donne pas la bonne réponse. J'ai essayé le même code avec VB.NET et ça l'a fait!
Quelqu'un peut-il me dire comment résoudre ce problème s'il existe une solution?
C #:
object a = true;
object b = true;
object c = false;
if (a == b) c = true;
MessageBox.Show(c.ToString()); //Outputs False !!
VB.NET:
Dim a As Object = True
Dim b As Object = True
Dim c As Object = False
If (a = b) Then c = True
MessageBox.Show(c.ToString()) '// Outputs True
avous obtenez la boxe et créez une boîte contenant true. Lorsque vous attribuez à bvous obtenez une autre boîte contenant également true. Lorsque vous comparez aet b, comme les deux sont de type à la compilation object, vous appelez la surcharge operator ==(object, object)définie par la spécification du langage C #. Cette surcharge vérifie si les références vont au même objet. Puisque vous avez deux boîtes, le résultat est false, et l'instruction "sous" votre ifne fonctionnera pas. Pour mieux comprendre cela, essayez de modifier l'attribution de bà ceci: object b = a;Vous n'avez plus qu'une seule case.
a.Equals(b)?