将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();

将int var转换为带有未分配局部变量错误的字符串var

编译器没有办法知道你的复选框是否会在运行时被选中,所以它会抱怨,因为有可能变量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'块。

希望有帮助!