2012-09-24 2 views
2

switch 문을 사용하여 SP에서 가져온 값을 확인하기 위해 임시 로컬 변수를 만들려고합니다. 이러한 멤버를 int 형식으로 선언했으며 SP 값의 값은 0, 1 또는 공백 중 하나입니다. 공백과 비교하는 문을 int 일 때 문자열로 취급합니다. 이 문제를 어떻게 해결할 수 있습니까?어떻게 switch 문을 사용하여 int 형식을 C#에서 공백으로 검사합니까?

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

공백은 공백 일 수 없습니다 (완전히 다른 것 인 공백을 허용하지 않는 한). – BoltClock

+0

빈 값을 int로 변환 할 때 빈 값이 무엇인지 볼 수 있습니다. 그것에 대해 명시 적으로 추가 할 수 있습니다. 일반적으로 프로그래밍에서 NULL을 사용하지 않는 것이 좋습니다. –

답변

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; 
} 

나중에 (체인까지) 당신이 정말로 비워 둘 수 없습니다

+0

첫 줄에 캐스팅하지 않아도됩니다. 'returnedvalue'는 이미 int이며 아무 것도 반환하지 않습니다. – Jamiec

+0

그곳에서 작동합니다. –

1

정수하려는 경우 그러나, 당신은 null 허용 정수 사용할 수, 빈 문자열로 그것을 변환 할 수 있습니다

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; 
} 
관련 문제