C#debutant
Messages postés7Date d'inscriptionmercredi 2 avril 2014StatutMembreDernière intervention23 avril 2014
-
Modifié par C#debutant le 8/04/2014 à 12:16
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024
-
8 avril 2014 à 21:45
Bonjour a tous,
Je fais du C#depuis peu, je suis face a un problème avec visual studio 2013 il me dit comparaison de référence involontaires.
Voici mon code:
Boolean b=false; int articles = 0; string n = "pas ok"; if (details.Tag != n) { details.Tag = "pasok";
Le problème se trouve dans le If visual me dit de cast en string la partie gauche je ne vois pas comment faire.
Merci
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 8 avril 2014 à 15:25
Bonjour,
Tag est de type "object".
Si tu y a rentré un string, alors
details.Tag.ToString() != n
devrait fonctionner.
Si tu as a rentré autre chose, ça va dépendre du type d'entrée.
C#debutant
Messages postés7Date d'inscriptionmercredi 2 avril 2014StatutMembreDernière intervention23 avril 2014 8 avril 2014 à 20:31
Merci bien pour le moment le compilateur accepte ça donc parfait.
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 8 avril 2014 à 21:45
C'est certain que le compilateur accepte. ToString() existe pour tous les types en C#. Mais ça ne retournera pas forcément ce que tu veux.
Public class Personne
{
public string Nom {get; set;}
public string Prenom {get; set;}
}
Dans cet exemple, je n'ai pas spécifiquement écrit ToString, pourtant si tu instancies une personne, la méthode existe (Personne dérive de object, qui possède déjà cette méthode).
Par contre si tu regardes le contenu de cette méthode, ça va te retourner le type de l'objet, un truc dans le genre : monNamespace.Personne.
Si tu veux que ToString retourne quelque chose de précis, il faut réécrire la méthode:
Public class Personne
{
public string Nom {get; set;}
public string Prenom {get; set;}
public override ToString()
{
return "je m'appelle " + Prenom;
}
}
Au final, le résultat détails.Tag dépendra de ce que tu y a rentré
8 avril 2014 à 20:31
8 avril 2014 à 21:45
Dans cet exemple, je n'ai pas spécifiquement écrit ToString, pourtant si tu instancies une personne, la méthode existe (Personne dérive de object, qui possède déjà cette méthode).
Par contre si tu regardes le contenu de cette méthode, ça va te retourner le type de l'objet, un truc dans le genre : monNamespace.Personne.
Si tu veux que ToString retourne quelque chose de précis, il faut réécrire la méthode:
Au final, le résultat détails.Tag dépendra de ce que tu y a rentré