2011-02-24 62 views
0

我有這樣的枚舉:整數設置爲一個枚舉變量

public enum IndexType : int 
    { 
     /// <summary> 
     /// The value has not been set. 
     /// </summary> 
     NotSet = 0, 
     /// <summary> 
     /// No description available. 
     /// </summary> 
     _1moUSDLIBORBBA = 1, 
     /// <summary> 
     /// No description available. 
     /// </summary> 
     _12moUSDLIBORBBA = 71, 
     /// <summary> 
     /// No description available. 
     /// </summary> 
     _3moUSDLIBORBBA = 12, 
     /// <summary> 
     /// No description available. 
     /// </summary> 
     _6moUSDLIBORBBA = 13, 
     /// <summary> 
     /// No description available. 
     /// </summary> 
     USDPRIMEH15 = 1896, 
     /// <summary> 
     /// No description available. 
     /// </summary> 
     USDSIFMAMunicipalSwapIndex = 3, 
    } 

我想創建該枚舉類型的變量,將其設置爲這樣一個整數:

Data.Indications.IndexType indexType = sm.FloatingComponent.IndexID.Value; 

這不編譯。我將如何做到這一點?

回答

0

枚舉在C#允許鑄造和從int。假設IndexID.Value是一個int,它是那樣簡單:

Data.Indications.IndexType indexType = (Chatham.Web.Data.Indications.IndexType)sm.FloatingComponent.IndexID.Value; 
+0

試過了,得到這個 - >錯誤無法隱式轉換類型「Chatham.Enumerations.IndexType」到「Chatham.Web.Data.Indications.IndexType」。存在明確的轉換(您是否缺少演員?) – slandau 2011-02-24 22:07:38

+0

聽起來像名稱空間問題,您有兩種類型共享相同名稱'IndexType'。我已經更新了我的答案。 – 2011-02-24 22:09:35

+1

@slandau:在這種情況下,有一個名爲'IndexType' 2個枚舉:'Chatham.Web.Data.Indications.IndexType'和'Chatham.Enumerations.IndexType'。不合格的'IndexType'強制轉換爲第二個,因此只需將'(IndexType)'改爲''(Chatham.Web.Data.Indications.IndexType)'。 – 2011-02-24 22:09:49

0

如果你不知道來自IndexID爲值,然後使用此代碼:

 if (sm.FloatingComponent.IndexID.HasValue && Enum.IsDefined(typeof(Data.Indications.IndexType),sm.FloatingComponent.IndexID.Value)) 
     { 
      Data.Indications.IndexType indexType = (Data.Indications.IndexType)sm.FloatingComponent.IndexID.Value; 
     } 
     else 
     { 
      Data.Indications.IndexType indexType = IndexType.NotSet; 
     }