在 C# 中重构 foreach 循环和传递变量
Refactor foreach loops and passing variables in C#
我是 C# 新手。我以为我知道一点 C# 但显然不是。
我正在尝试通过串行通信使用 C# Windows Form 与 Arduino 进行通信,当单击按钮 3 时,Windows Form 应用程序将为 Arduino 发送命令发回所需的数据,以便 Windows 表单应用程序填写指定的文本框,但我收到 Error CS0103 The name 'tb' does not exist in the current context
错误。
我已经尝试了提供的所有可能选项,但没有成功。这是我的代码:
private void button3_Click(object sender, EventArgs e)
{
TextBox[] myTextBoxes = new TextBox[] { textBox9, textBox10, textBox11, textBox12, textBox13, textBox14, textBox15, textBox16 };
String[] myCommands = new String[] { "#TRMMH1\n", "#TRMMM1\n", "#TRMMH2\n", "#TRMMM2\n", "#TRMMH3\n", "#TRMMM3\n", "#TRMMH4\n", "#TRMMM4\n" };
String inString;
foreach (String co in myTextBoxes.SelectMany(tb => myCommands))
{
port.Write(co);
inString = port.ReadLine();
tb.Text = inString;
}
我尝试搜索 Google 和 Stack Overflow,但我不确定要搜索什么。
您有两个 8 号阵列。你不能用 foreach 以这种方式处理两个数组 - 你需要一个 for 循环,这样你就可以为两个
使用 运行ning 变量
TextBox[] myTextBoxes = new TextBox[] { textBox9, textBox10, textBox11, textBox12, textBox13, textBox14, textBox15, textBox16 };
String[] myCommands = new String[] { "#TRMMH1\n", "#TRMMM1\n", "#TRMMH2\n", "#TRMMM2\n", "#TRMMH3\n", "#TRMMM3\n", "#TRMMH4\n", "#TRMMM4\n" };
for(int i=0; i<myTextBoxes.Lenght && i<myCommands.Lenght; i++){
TextBox curTB = myTextBoxes[i];
String curCMD = myCommands[i];
port.Write(curCMD);
string temp = port.ReadLine();
curTB.Text = temp;
}
我没有 运行 此代码,因此可能会出现偏差或语法错误。
我是 C# 新手。我以为我知道一点 C# 但显然不是。
我正在尝试通过串行通信使用 C# Windows Form 与 Arduino 进行通信,当单击按钮 3 时,Windows Form 应用程序将为 Arduino 发送命令发回所需的数据,以便 Windows 表单应用程序填写指定的文本框,但我收到 Error CS0103 The name 'tb' does not exist in the current context
错误。
我已经尝试了提供的所有可能选项,但没有成功。这是我的代码:
private void button3_Click(object sender, EventArgs e)
{
TextBox[] myTextBoxes = new TextBox[] { textBox9, textBox10, textBox11, textBox12, textBox13, textBox14, textBox15, textBox16 };
String[] myCommands = new String[] { "#TRMMH1\n", "#TRMMM1\n", "#TRMMH2\n", "#TRMMM2\n", "#TRMMH3\n", "#TRMMM3\n", "#TRMMH4\n", "#TRMMM4\n" };
String inString;
foreach (String co in myTextBoxes.SelectMany(tb => myCommands))
{
port.Write(co);
inString = port.ReadLine();
tb.Text = inString;
}
我尝试搜索 Google 和 Stack Overflow,但我不确定要搜索什么。
您有两个 8 号阵列。你不能用 foreach 以这种方式处理两个数组 - 你需要一个 for 循环,这样你就可以为两个
使用 运行ning 变量TextBox[] myTextBoxes = new TextBox[] { textBox9, textBox10, textBox11, textBox12, textBox13, textBox14, textBox15, textBox16 };
String[] myCommands = new String[] { "#TRMMH1\n", "#TRMMM1\n", "#TRMMH2\n", "#TRMMM2\n", "#TRMMH3\n", "#TRMMM3\n", "#TRMMH4\n", "#TRMMM4\n" };
for(int i=0; i<myTextBoxes.Lenght && i<myCommands.Lenght; i++){
TextBox curTB = myTextBoxes[i];
String curCMD = myCommands[i];
port.Write(curCMD);
string temp = port.ReadLine();
curTB.Text = temp;
}
我没有 运行 此代码,因此可能会出现偏差或语法错误。