2

我正在尝试创建一个临时局部变量来检查使用 switch 语句从 SP 中提取的值。我已将这些成员声明为 int 类型,并且 SP 的值将是 0、1 或空白。当它是 int 时,它将与空白进行比较的语句视为字符串。我怎样才能解决这个问题?

private int checkInventoryValue(int returnedval)
{
   int testedValue = (int)returnedval;
   switch (testedValue)
   { 
       case 1:
           testedValue = 0;
           break;
       case 2:
           testedValue = 1;
           break;
       default:
           testedValue = ""; // error CS0029: Cannot implicitly convert type 'string' to 'int' 
           break;
    }
}

先感谢您。

4

2 回答 2

3
private int? checkInventoryValue(int returnedval)
{
    int? testedValue = (int?)returnedval;
    switch (returnedval)
    { 
        case 1:
            testedValue = 0;
            break;
        case 2:
            testedValue = 1;
            break;
        default:
            testedValue = null; 
            break;
    }
    return testedValue;
}

稍后(在链上),如果您真的想要,您可以将其转换为空字符串

于 2012-09-24T14:37:36.573 回答
1

整数不能为空,但是,您可以使用可为空的整数:

int? testedValue = (int?)returnedval;
switch (testedValue.Value)
{ 
    case 1:
        testedValue = 0;
        break;
    case 2:
        testedValue = 1;
        break;
    default:
        testedValue = null; // error CS0029: Cannot implicitly convert type 'string' to 'int' 
        break;
}
于 2012-09-24T14:38:51.457 回答