我试图调用这些函数来清除我不需要的东西,但我的代码似乎正在击败我,我开始认为这是一场徒劳的斗争。我尝试了多种方法来解决最后两个错误,但IEnumerator给了我通配符。行上有错误: if (enumerator2为IDisposable)和if (枚举器为IDisposable)
try
{
enumerator = matchs.GetEnumerator();
while (enumerator.MoveNext())
{
IEnumerator enumerator2;
Match current = (Match) enumerator.Current;
num = 0;
try
{
enumerator2 = current.Groups.GetEnumerator();
while (enumerator2.MoveNext())
{
Group group = (Group) enumerator2.Current;
strArray[num, num3] = group.Value;
num++;
}
}
finally
{
if (enumerator2 is IDisposable)
{
(enumerator2 as IDisposable).Dispose();
}
}
if (num2 < num3)
{
num2 = num3;
}
num3++;
}
}
finally
{
if (enumerator is IDisposable)
{
(enumerator as IDisposable).Dispose();
}
}
strArray[num, 0] = Conversions.ToString((int) (num2 + 1));
return strArray;
}特定于编辑的错误消息:使用未赋值的局部变量'enumerator2‘
使用未赋值的局部变量“enumerator”
发布于 2011-06-04 11:27:49
正如其他人所指出的那样,您应该使用foreach循环。
但是,出现该错误的原因是,当在finally块中使用enumerator2时,编译器无法知道它被设置为某个值(因为它可能在某些异常情况下不存在)。通过执行以下操作,您可以按原样修复代码:
IEnumerator enumerator2 = null;
Match current = ...发布于 2011-06-04 10:53:09
使用for-each循环而不是while循环。如果需要,它将为您调用Dispose。
http://msdn.microsoft.com/en-us/library/aa288257(VS.71).aspx
https://stackoverflow.com/questions/6234385
复制相似问题