C# 不理解异常,无法转换为可读文本
我有一个哈希表,它将IP存储为键的字符串,并在相应的值中创建一个对象 我在C# 不理解异常,无法转换为可读文本,c#,exception,C#,Exception,我有一个哈希表,它将IP存储为键的字符串,并在相应的值中创建一个对象 我在foreach(MasterHash.Keys中的DictionaryEntry信息)中不断遇到异常。 更具体地说,它发生在调试器进入字典入口时。 我试图从try-catch语句中激发一条消息,但编译器不喜欢我尝试将e转换为.ToString或.message private void UpdateMap(Hashtable masterHash) { try { foreach (Dict
foreach(MasterHash.Keys中的DictionaryEntry信息)
中不断遇到异常。
更具体地说,它发生在调试器进入字典入口时。
我试图从try-catch语句中激发一条消息,但编译器不喜欢我尝试将e
转换为.ToString
或.message
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());
}
}
这可能是无效的强制转换异常。masterHash.Keys不是字典入口。密钥应该是字符串(您的IP字符串)
编辑:
我不知道为什么您无法捕获异常的值。但是你说你
将IP存储为密钥的字符串
相反,你是在循环键,但期待字典进入
试着做:
foreach(masterHash.Keys中的字符串s)
或者类似的东西。我尝试用字符串而不是字典条目实现foreach。IDE现在正在抱怨:错误1“string”不包含“Value”的定义,并且找不到接受“string”类型的第一个参数的扩展方法“Value”(是否缺少using指令或程序集引用?)在foreach中使用字符串时如何检索对象?我尝试使用字符串而不是字典条目实现foreach。IDE现在正在抱怨:错误1“string”不包含“Value”的定义,并且找不到接受“string”类型的第一个参数的扩展方法“Value”(是否缺少using指令或程序集引用?)。在foreach中使用string时如何检索对象?请仔细查看,哈希表的键作为ICollection枚举。我将编辑一个建议。如果您使用的是.net 3.0或更高版本,您可以在foreach
语句中使用var
而不是object。
ICollection MyKeys = MyTable.Keys;
foreach (object Key in MyKeys)
{
Console.WriteLine(Key.ToString());
}