【发布时间】:2023-03-05 23:09:02
【问题描述】:
我正在尝试构建一个 Arduino 项目以通过 Open Hardware Monitor 测量 CPU 和 GPU 温度,现在我在 C# 应用程序中遇到问题。
它在第 45 行给出了这个错误:
不能在此范围内声明名为“端口”的局部变量 因为它会给'port'赋予不同的含义,这已经是 在“父级或当前”范围内使用以表示其他内容
我能得到一些帮助吗?非常感谢你!
private void Init()
{
try
{
notifyIcon1.Visible = false;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.DataBits = 8;
port.Handshake = Handshake.None;
port.RtsEnable = true;
string[] ports = SerialPort.GetPortNames();
45 foreach (string port in ports)
{
comboBox1.Items.Add(port);
}
port.BaudRate = 9600;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
【问题讨论】:
-
只需将
foreach中的变量重命名为其他名称,因为您显然已经有了一个具有该名称的变量。 -
错误很明显。您在某处还有另一个名为 port 的变量。
-
你显然已经有一个名为
port的变量,你已经在使用它了。所以你不能给循环变量(在你的foreach)同名。错误信息很清楚。 -
我真的很想知道为什么这个问题被否决了。问题很清楚,格式也很好。我知道这是一个看似微不足道的问题,但 OP 显然不了解作用域是如何工作的,或者在
foreach中声明了一个新变量,或者其他什么。为什么他们会因此受到惩罚? -
@JasonBoyd 有很多问题要求完全相同(忽略变量名)错误消息。大概 OP 查看了那些现有的帖子,但是对于 SO 的问题质量很好,必须在帖子中显示研究。您还提供了为什么应该将帖子关闭为“不清楚”或“太宽泛”的原因,因为 OP 似乎对(非常详细的)错误消息中提到的概念有问题的理解......
标签: c#