if(Screens.Count > 0)
{
for (int i = Screens.Count -1; i < 0; i +=1)
{
if (Screens[i].GrabFocus)
Screens[i].GrabFocus = true;
break;
}
}
无法访问的代码
尝试转换 VB代码到C#
For I = FoundScreens - 1 to 0 step -1
if (Screens[i].GrabFocus)
Screens[i].GrabFocus = true;
break;
我在C#中的错误在哪里?
答案 0 :(得分:0)
乍一看VB代码从列表中的最后一个屏幕开始到第一个
VB.NET
For I = FoundScreens - 1 to 0 step -1
在C#中执行相同的操作
for (int i = Screens.Count -1; i > 0; i--)
您的原始代码无法访问,因为for中的循环条件是您实现的:
for (int i = Screens.Count -1; i < 0; i +=1)
I&LT; 0,当i被分配了屏幕数时,它可以是0到n,所以我永远不会小于0。
我很惊讶你会在for中得到这样的警告,因为这个代码的简单测试
for (int i = 0; i < 0; i +=1)
{
Console.WriteLine(i.ToString());
}
Console.ReadKey();
在简单的控制台应用程序中不会显示任何警告。