【问题标题】:Declaring string for if statement为 if 语句声明字符串
【发布时间】:2016-05-12 06:11:11
【问题描述】:

我有 checkBox1,我需要根据 checkBox1 的状态创建一个字符串。

当 checkBox1 没有被选中时,我需要:

string[] myString = {"1","2","3"};

如果 checkBox1 被选中,我需要:

string[] myString = {"a","b","c"};

我尝试过使用 if 语句

if (checkBox1.Checked)
{
    string[] myString = {"a","b","c"};
}
else if (!checkBox1.Checked)
{
    string[] myString = {"1","2","3"};
}

问题是 myString 是在 if 语句中声明的,所以我以后不能使用它。我不知道如何在 if 语句之前声明 myString 以便我可以在 if 语句中进行修改。

【问题讨论】:

  • 在 if/else 之前声明 myString,然后做 myString = new string[] {values}

标签: c# string winforms if-statement declare


【解决方案1】:

myString 只能声明一次

string[] myString = null;

if (checkBox1.Checked)
{
    myString = new string[] { "a", "b", "c" };
}
else
{
    myString = new string[] { "1", "2", "3" };
}

【讨论】:

  • 您甚至可以在分配时省略 string 关键字:myString = new[] { "a", "b", "c" };
【解决方案2】:

让你myString 声明外部 if 声明使其成为全局

string[] myString;

if (checkBox1.Checked)
{
    myString = new string[]{"a","b","c"};
}
else if (!checkBox1.Checked)
{
    myString = new string[]{"1","2","3"};
}

【讨论】:

    【解决方案3】:

    您在if 语句之外声明它,省略赋值部分:

    string[] myString;
    
    if (checkBox1.Checked)
    {
        myString = new string[]{"a","b","c"};
    }
    else if (!checkBox1.Checked)
    {
        myString = new string[]{"1","2","3"};
    }
    

    【讨论】:

      【解决方案4】:

      您的问题是两次声明相同的变量并且变量未在公共范围内定义。试试这个..如果你的要求不需要,因为我删除了那个

      string[] myString = null;
      
          if (checkBox1.Checked)
          {
              myString = new string[] { "a", "b", "c" };
          }
          else  
              myString = new string[] { "1", "2", "3" };
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-27
        • 2021-01-07
        • 2019-02-23
        • 2022-10-13
        • 1970-01-01
        • 2018-03-09
        • 2016-07-17
        相关资源
        最近更新 更多