C# - Vérifier le type de données d'une valeur par l'intermédiaire si condtion
Je suis de la liaison d'un ArrayList() pour un contrôle de zone de liste et l'attribution d'une Displaymember et de la Valeur sur les données de la Matrice. Mon problème est que je la lie au démarrage, mais l'ensemble est complété après quelques appels de fonction. J'ai un code sur selectedIndexChanged pour vérifier la selectedValue mais si l'ArrayList est vide, elle renvoie un objet, une fois qu'il a données, il retourne la chaîne je pense. Je suis encore confus pourquoi il fonctionne selectedIndexChanged lorsque la liste n'a pas de données. Pense qu'il peut s'exécuter après que j'ai lier la Displaymember, mais avant la valeur est affectée:
lbCAT_USER.DataSource = USERS;
//Running here maybe?
lbCAT_USER.DisplayMember = "DisplayString";
//Or Here?
lbCAT_USER.ValueMember = "ID";
De toute façon mon travail actuel est autour d'un try/catch de comparer les SelectedValue d'une chaîne et d'essayer d'exécuter à nouveau la fonction.
Solution Simple est peut-être un moyen de vérifier le type de données avant l'instruction if? Toutes les idées de suggestions qui pourraient être très utiles. Grâce
- Quelle est la version de .Net?
Vous devez vous connecter pour publier un commentaire.
Vous avez deux façons de vérifier:
Si vous voulez juste faire la comparaison:
Si votre question est de savoir comment vérifier le type de données d'une valeur par si de condition (titre!), alors ici vous allez (exemple: vérifier si la valeur est de type 'string'):
EDIT: Ce n'est pas la façon la plus propre de le faire. Vérifier Garde la réponse pour plus de moyens sophistiqués pour vérifier les types. L'Utilisation De 'GetType().Égales, comme "je ne est plus précis que" est " ou "comme", depuis la "valeur" doit être exactement du type 'string'. 'est' et 'comme' si 'valeur' est une sous-classe de l'objet type. Ce n'est pas pertinent si lors de la comparaison avec le type 'string', puisque vous ne pouvez pas hériter de la chaîne.
Pour gérer le cas où la valeur est null:
Je crois que vous pouvez aussi utiliser:
pour vérifier le type d'une variable en C#.
Oui, ils appellent tous OnSelectedIndexChanged() événement
vous pouvez le vérifier en plaçant des points de rupture sur le OnSelectedIndexChanged gestionnaire et pas à pas à travers.
Vous pourriez onu-crochet de la OnSelectedIndexChanged événement lorsque vous faites la liaison de données
Ou tout simplement vérifier la valeur comme les autres ont suggéré sur la OnSelectedIndexChanged événement.
Faire les deux peut pas faire de mal