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

时间:2013-05-22 22:40:50

标签: c# winforms

我正在尝试将int var转换为字符串var,以便在.txt文件中使用。我想出了一个“未分配的局部变量错误”。我看过其他问题,但我看不出我错过了什么。我以前能够将int var转换为字符串var,我不确定我哪里出错了。如果你也能用解决方案给我理论,那将是最有帮助的

        int sbntmsk;
        if (RBSBtn.Checked)
        {
            sbntmsk = 29;

        }
        if (BTSBtn.Checked)
        {
            sbntmsk = 30;
        }

        string subntmsk;
        subntmsk = sbntmsk.ToString();

4 个答案:

答案 0 :(得分:4)

编译器无法知道您的复选框是否会在运行时被检查,因此它会抱怨,因为变量sbntmsk可能会到达您尝试将其转换为字符串而无需分配的价值。

修复消息声明并使用(或任何默认值)初始化sbntmsk

int sbntmsk = 0;

答案 1 :(得分:1)

您需要为整数提供默认值。例如,如果没有选中任何按钮,您希望在字符串中出现什么?

答案 2 :(得分:1)

你可以使用字符串吗?

var sbntmsk = String.Empty;
    if (RBSBtn.Checked)
    {
        sbntmsk = "29";

    }
    if (BTSBtn.Checked)
    {
        sbntmsk = "30";
    }

答案 3 :(得分:0)

尝试使用这种方法:

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”块。

希望它有所帮助!