2013-02-11 65 views
0

基於字體及其大小標識符,我想計算文本的高度。這一點,雖然,不編譯(抱怨「控制不能從一個case標籤通過下降(‘默認:’)到另一個」):如何在C#1.1中結合使用案例標籤?

private int GetHeightForFontAndFontSize(int fontType, int fontSizeId) 
    { 
     int retVal = 0; 
     if (fontType == 0) 
     { 
      switch (fontSizeId) 
      { 
       case 0: 
       case 1: 
        retVal = 9; 
        break; 
       case 2: 
       case 3: 
       case 4: 
        retVal = 18; 
        break; 
       case 5: 
       case 6: 
        retVal = 36; 
        break; 
       default: 
        retVal = 9; 
      }   
     } 
     if (fontType == 1) 
     . . . 

          return retVal; 
    } 

...即使這樣的:http://msdn.microsoft.com/en-us/library/06tc147t(v=vs.71).aspx說,「雖然秋天通過從一個案例標籤到另一個不被支持,它被允許堆疊案例標籤,例如「

在我看來,我在堆疊案例標籤,因爲他們描繪,所以是什麼問題?

回答

5

對於default:的情況,您需要break;

+0

不是;仍然得到相同的錯誤味精。 – 2013-02-11 23:35:00

+0

它有助於實際添加「返回retVal」線。 – 2013-02-11 23:44:18

1

嘗試在默認情況下放置break;

1

這是固定的代碼。 我在默認情況下添加了中斷。

private int GetHeightForFontAndFontSize(int fontType, int fontSizeId) 
    { 
     int retVal = 0; 
     if (fontType == 0) 
     { 
      switch (fontSizeId) 
      { 
       case 0: 
       case 1: 
        retVal = 9; 
        break; 
       case 2: 
       case 3: 
       case 4: 
        retVal = 18; 
        break; 
       case 5: 
       case 6: 
        retVal = 36; 
        break; 
       default: 
        retVal = 9; 
        break; 
      }   
     } 
     if (fontType == 1) 
     . . . 

          return retVal; 
    } 
+0

不是;仍然得到相同的錯誤味精。每個人都有同樣的想法,所以它必須是「正確的」,但它仍然行不通... – 2013-02-11 23:37:19