gpt4 book ai didi

c# - 当前上下文中不存在该变量

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:41 24 4
gpt4 key购买 nike

string[,] cusName = { { "John", "Smith" }, { "Will", "James"} , { "Bryan", "Doe" } };

for (int x = 0; x < cusName.GetLength(x); x++)
{
for (int j = x + 1; j < cusName.GetLength(j); j++)
{
Console.Write("{0} ", cusName[x, j]);
}
Console.Write("{0} ", cusName[x, j]);
}

我的问题是最后一个 Console.Write 总是产生错误。它表示变量 j 在当前上下文中不存在。

最佳答案

If I want to have like semi global variable for loops. then I should just use a while? Am I correct?

不完全是。使用的循环类型和变量的范围并没有你想象的那么密切。

for 循环的第一个“参数”旨在用于变量声明和初始化,但实际上您可以(ab)使用它来执行任何有效语句。 (不要!这不是编写干净和可维护代码的方法)。您甚至可以将其留空并使用您之前在其他地方声明的变量:

var j = 42;
for(; j > 0; --j)
{
/* do something */
}
/* now, j is still in scope */
Console.WriteLine(j);

强烈建议不要这样做,因为它比普通语法可读性差,而且您还需要知道一点晦涩的信息:最后一次循环执行后循环变量的值(它是由break condition plus one increment/decrement) - 这很容易出错并引入一次性错误。

很少有 C# 初学者知道 C# 循环语法(它与 C 有很多相似之处)根本不受 for(declaration; condition; increment) 模式的限制。如果您想开始混淆的 C# 代码竞赛,以下是有效的工作代码:

for (int i = 11, j = new Random().Next(33) + 1; i * j < 65536; Console.WriteLine(++j))
{
++i;
}

关于c# - 当前上下文中不存在该变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50642263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com