将int var转换为带有未分配局部变量错误的字符串var
本文关键字:var 局部变量 分配 错误 字符串 int 转换 | 更新日期: 2023-09-27 18:14:50
我正试图将int var转换为字符串var,以便在.txt文件中使用。我提出了一个"未分配的局部变量错误"。我已经看过其他问题,但我不知道我错过了什么。我已经能够将int var转换为字符串var之前,我不确定我在哪里出错。如果你能把理论和解决方案告诉我,那就太有帮助了。
int sbntmsk;
if (RBSBtn.Checked)
{
sbntmsk = 29;
}
if (BTSBtn.Checked)
{
sbntmsk = 30;
}
string subntmsk;
subntmsk = sbntmsk.ToString();
编译器没有办法知道你的复选框是否会在运行时被选中,所以它会抱怨,因为有可能变量sbntmsk
达到了你试图将其转换为字符串而没有赋值的点。
用(或任何你喜欢的默认值)
声明和初始化sbntmsk
int sbntmsk = 0;
您需要为该整数提供一个默认值。例如,如果两个按钮都没有选中,您期望字符串中是什么?
你可以直接使用字符串吗?
var sbntmsk = String.Empty;
if (RBSBtn.Checked)
{
sbntmsk = "29";
}
if (BTSBtn.Checked)
{
sbntmsk = "30";
}
尝试使用以下方法:
int sbntmsk;
if (RBSBtn.Checked)
{
sbntmsk = 29;
}
else if (BTSBtn.Checked) // Notice the ELSE - IF
{
sbntmsk = 30;
}
else
{
sbntmsk = 0; // a default value
}
string subntmsk = String.Empty; // initialize with empty
subntmsk = sbntmsk.ToString();
由于使用多个复选框,您正在分配给相同的变量,因此无需检查所有IF
块。此外,使用这种方式,您有可能在末尾定义一个'ELSE'块。
希望有帮助!