我在VB.NET中有一个Active Directory搜索器,我正在转换为C#.NET并且收到上述错误。
我查看了this帖子,这是完全相同的错误,但是在不同的情况下。通过阅读链接的帖子,似乎错误是由于没有指定你试图循环的数据类型引起的......我无法锻炼的是我的搜索者,我实际应该指定哪种数据类型!
以下是目前存在错误的代码;
foreach (Result in SearcherResults)
{
OnResultFound(new ResultFoundEventArgs(Result));
ResultCount += 1;
}
我试过了;
foreach (var Result in SearcherResults)
正如另一篇文章中所建议的那样,我也尝试过了;
foreach (SearchResult Result in SearcherResults)
认为结果被定义为SearchResult类型,这可能有效,但这两个尝试都错误
"A local variable named 'Result' cannot be declared in this scope because it would give a different meaning to 'Result', which is already used in a 'parent or current' scope to denote something else"
我想我错过了一些非常明显的东西,但如果有人有任何建议我会非常感激。
答案 0 :(得分:2)
正如此错误所述:
名为'结果'的局部变量不能在此范围内声明,因为它会给“结果”赋予不同的含义,这已经在父母或当前的“父母”中使用过。范围表示别的东西"
您在其他地方定义了名为Result
的变量。只需更改其名称:
foreach (var searcherResult in SearcherResults)
{
OnResultFound(new ResultFoundEventArgs(searcherResult));
ResultCount += 1;
}
答案 1 :(得分:0)
认为结果被定义为SearchResult类型,这可能有效,但这两个尝试都错误
这让我觉得您在foreach循环之前实际定义了Result
。
实际上,您在的foreach循环中定义了。
错:
SearcherResult Result;
foreach (SearcherResult Result in SearcherResults)
{
...
}
编译器会将两个Result
定义看作两个具有相同名称的独立变量,因此会出错。
正确:
foreach (SearcherResult Result in SearcherResults)
{
...
}
在定义foreach循环时定义变量Result。