Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不理解异常,无法转换为可读文本_C#_Exception - Fatal编程技术网

C# 不理解异常,无法转换为可读文本

C# 不理解异常,无法转换为可读文本,c#,exception,C#,Exception,我有一个哈希表,它将IP存储为键的字符串,并在相应的值中创建一个对象 我在foreach(MasterHash.Keys中的DictionaryEntry信息)中不断遇到异常。 更具体地说,它发生在调试器进入字典入口时。 我试图从try-catch语句中激发一条消息,但编译器不喜欢我尝试将e转换为.ToString或.message private void UpdateMap(Hashtable masterHash) { try { foreach (Dict

我有一个哈希表,它将IP存储为键的字符串,并在相应的值中创建一个对象

我在
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());
}