2012-01-18 86 views
-3

我試圖從一個int轉換爲一個枚舉,未果,如下:鑄造從int到枚舉仍返回一個int

ENUM

public enum ePriceType{ 
    Fixed = 1, 
    Variable = 2 
} 

CAST

public int priceTypeA = 2; 
public ePriceType priceTypeB = (ePriceType)priceTypeA; 

代碼運行正常,但是當你檢查priceTypeB的價值某些原因,它仍顯示int而不是ePriceType,這會導致代碼進一步下降。

任何人都可以幫忙嗎?

UPDATE

事實上,這個問題是一個整體複雜得多,涉及Web服務的客戶端。我試圖簡化它上面一樣,但顯然didnt相當的工作,林不知道如何最簡單的解釋完全問題:(謝謝您的回答無論如何

+2

請出示產生錯誤的代碼。 – 2012-01-18 12:58:26

+5

進一步下降的錯誤是什麼?你如何「檢查」價值? – 2012-01-18 12:58:32

+3

其他事情正在發生。請多一點代碼。 – 2012-01-18 13:00:15

回答

3

當您檢查priceTypeB的值仍顯示一個int

不知道你是如何檢查此值,並在那裏爲什麼你看到一個int但下面的檢查工作完全正常:

public enum ePriceType 
{ 
    Fixed = 1, 
    Variable = 2 
} 

class Program 
{ 
    static void Main() 
    { 
     int priceTypeA = 2; 
     ePriceType priceTypeB = (ePriceType)priceTypeA; 
     if (priceTypeB == ePriceType.Variable) 
     { 
      Console.WriteLine("Variable"); 
     } 
    } 
} 
+0

'不知道你是如何檢查這個值,在哪裏' - 我添加了一個斷點並檢查了從那裏的值:) – Jimbo 2012-01-18 13:57:22

0

試試這個:

public class EnumProvider 
{ 
    public enum ePriceType{ 
    Fixed = 1, 
    Variable = 2 
} 

var a = Enum.GetName(typeof(EnumProvider.ePriceType), 1); 

這裏將被「固定」

+0

爲什麼在類中包裝枚舉? – 2012-01-18 13:21:06

+0

沒必要把它包裝在一個類中,我們也可以把它放在同一個類中 – 2012-01-18 13:24:15