1

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

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

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

        string subntmsk;
        subntmsk = sbntmsk.ToString();
4

4 回答 4

4

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

修复消息声明和初始化sbntmsk(或您喜欢的任何默认值)

int sbntmsk = 0;
于 2013-05-22T22:44:46.010 回答
1

您需要为整数提供默认值。例如,如果两个按钮都未选中,您希望字符串中包含什么?

于 2013-05-22T22:43:32.140 回答
1

你可以只使用字符串吗?

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

    }
    if (BTSBtn.Checked)
    {
        sbntmsk = "30";
    }
于 2013-05-22T22:45:34.270 回答
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”块。

希望能帮助到你!

于 2013-05-23T05:26:06.050 回答