2012-08-23 21 views
0

我有這樣的代碼需要遍歷一個枚舉並進行一些計算。PantaRei.Classes.Enums.ProductTypeA1Enum.Types'是一個'type',在給定的上下文中無效

這是枚舉

namespace PantaRei.Classes.Enums 
{ 
    public class ProductTypeA1Enum 
    { 
     #region Reports Enum 

     public enum Types 
     { 
      [StringValue("K01")] 
      K01 = 1, 
      [StringValue("K03")] 
      K03 = 2, 
      [StringValue("K05")] 
      K05 = 3, 
      [StringValue("M01")] 
      M01 = 4 
     } 

     #endregion 
    } 
} 

這是我的函數,它接受一個枚舉的參數是類型枚舉

GetData(ref secA1, ddr, ddrs, ProductTypeA1Enum.Types); 

這是我通過枚舉itereate代碼

public static void GetData(ref Dars secA1, Ddr ddr, Ddrs ddrs, Enum pTypes) 
      { 
       Array typesEnum = Enum.GetValues(pTypes.GetType()); 

       foreach (var types in typesEnum) 
       { 
        string pType = StringEnum.GetStringValue((Enum) types); 

        secA1.OpBal = ddrs.Out.Sum(o => o.Amount); 

secA1.MiCaCol += 
       ddr.Rec.Where(
        rec => 
        ddr.Acc.Exists(
         acc => 
         acc.Contract == rec.Contract && !acc.TransactionType.Equals("D9") && rec.ProductType == pType)). 
        Sum(rec => rec.Amount); 
      }    
    } 

這就是我得到的錯誤

PantaRei.Classes.Enums.ProductTypeA1Enum.Types' is a 'type', which is not valid in the given context  

這個錯誤來自這裏

GetData(ref secA1, ddr, ddrs, **ProductTypeA1Enum.Types**); 

類型是枚舉,所以爲什麼我收到此錯誤? 任何想法? 韓國社交協會提前 銳馬丁斯

回答

1

你應該這樣做:

GetData(ref secA1, ddr, ddrs, typeof(ProductTypeA1Enum.Types)); 

public static void GetData(ref Dars secA1, Ddr ddr, Ddrs ddrs, Type pTypes) 
{ 
    Array typesEnum = Enum.GetValues(pTypes); 

    // .... 
} 
+0

現在工作得很好。韓國社交協會。 –

相關問題