c#变量在Switch时重置为0

时间:2017-09-27 13:23:41

标签: c#

好的,所以我是c#的新手,所以请耐心等待我!

此代码在某种程度上有效:

                    if (rng.Value != null)
                    {
                        string cellValue = rng.Value.ToString();
                    }
                    else
                    {
                        string cellValue = "Null";
                    }


                    switch (cCnt)
                    {
                        case 1:

因此,这将逐个单元格从Excel工作表中获取值,并将其放入cellValue中,除非它是空的。

当我在调试中逐步执行它直到它到达开关时,一切都很好,当cellValue的值每次都设置为0时,即使有有效数据也是如此。我做错了什么?

2 个答案:

答案 0 :(得分:3)

您在此处遗漏的概念称为范围

cellValue变量在ifelse块内声明,这意味着它在到达switch块时已超出范围。您希望在if块之上声明该变量,因此它将具有更大的范围。

string cellValue = "Null";
if (rng.Value != null)
{
    cellValue = rng.Value.ToString();
}

switch (cCnt)
{
    case 1:

答案 1 :(得分:1)

您的声明在if区块内。改为:

string cellValue = string.Empty;

if (rng.Value != null)
{
    cellValue = rng.Value.ToString();
}
else
{
    cellValue = "Null";
}

switch (cCnt)
{
    case 1: