J'ai une table de hachage qui stocke les adresses IP en tant que chaînes pour la clé et un objet de ma création dans la valeur correspondante. Je continue à obtenir une exception à foreach (DictionaryEntry info in MasterHash.Keys)
. Plus précisément, il se produit lorsque le débogueur obtient DictionaryEntry
. J'ai essayé de provoquer un message de mon instruction try catch mais le compilateur n'aime pas que j'essaie de lancer e
à .ToString
ou .Message
.Ne pas comprendre l'exception, ne peut pas convertir en texte lisible
private void UpdateMap(Hashtable masterHash)
{
try
{
foreach (DictionaryEntry info in masterHash.Keys)
{
AxShockwaveFlashObjects.AxShockwaveFlash axFlash = wfh.Child as AxShockwaveFlashObjects.AxShockwaveFlash;
IPInstance foo = (IPInstance)info.Value;
axFlash.CallFunction(foo.GetMarkerCall().ToString(SaveOptions.DisableFormatting));
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
J'ai essayé d'implémenter le foreach avec une chaîne au lieu de l'entrée Dictionary. L'EDI se plaint maintenant: Erreur \t 1 'chaîne' ne contient pas de définition pour 'Valeur' et aucune méthode d'extension 'Valeur' acceptant un premier argument de type 'chaîne' n'a été trouvée (manque une directive using ou un assembly référence?) Comment puis-je récupérer mes objets lors de l'utilisation de la chaîne dans foreach? – Paul
En regardant de plus près, les clés d'un hashtable sont énumérées comme ICollection. Je vais modifier une suggestion. –
Si vous utilisez .net 3.0 ou supérieur, vous pouvez utiliser 'var' au lieu d'objet dans votre instruction' foreach'. – juharr