2012-06-26 39 views
0

有沒有辦法使用switch語句來設置整個案例中使用的一個特定變量的值?目前,如果值是1,我想變量爲1,如果值是2,我想變量爲2其實我只是做簡單的:使用switch語句只設置一個特定變量的值?

Int variable = value; 

..however,以供將來參考在一個例子更復雜的地方,我想知道是否有辦法。 (目前正在獲取一個變量已經定義錯誤)。

switch (value) 
     { 
      case 0: 
       int Variable = 0; 
       break; 
      case 1: 
       int Variable = 1; 
       break; 
      case 2: 
       int Variable = 2; 
       break; 
      case 3: 
       int Variable = 3; 
       break; 
      case 4: 
       int Variable = 4; 
       break; 
     } 
+3

switch中的所有情況都在同一個範圍內。只需將變量聲明放在它之外並正常分配即可。 –

+0

啊,現在你明確指出了,我一遍又一遍地聲明變量,非常感謝! – user1166981

+4

您是通過您寫的代碼行數來支付的嗎? –

回答

2

如果你在swtich之外聲明你的變量,你將不會得到「variable already defined」錯誤。發生這種情況是因爲switch中的所有內容都在相同的範圍內。

實施例:

int Variable = -1; 

switch (value) 
{ 
     case 0: 
      Variable = 0; 
      break; 
     case 1: 
      Variable = 1; 
      break; 
     case 2: 
      Variable = 2; 
      break; 
     case 3: 
      Variable = 3; 
      break; 
     case 4: 
      Variable = 4; 
      break; 
} 
+0

'else'子句可以處理任何意外的值。一種可能的選擇是使用可空的類型,例如, '詮釋?變量;'。 – HABO

5

如何哈希表或字典。這很麻煩,但我猜是很可讀的。

想法取自here

Dictionary<string, int> numbers = new Dictionary<string, int>(){ 
    {"zero", 0}, 
    {"one", 1}, 
    {"two", 2}, 
    {"three", 3}, 
    {"four", 4}, 
    {"five", 5}, 
    {"size", 6} 
}; 

int Variable = numbers[value]; 
+0

是的,這非常有用,謝謝。 – user1166981