获取Enum中项个数的优雅方法

在Microsoft.Practices.ObjectBuilder2中的StagedStrategyChain<TStageEnum>类中只用的下面的方法来获取枚举里元素的个数:

   1: private static int NumberOfEnumValues()
   2: {
   3:       return typeof(TStageEnum).GetFields(BindingFlags.Public | BindingFlags.Static).Length;
   4: }

使用方式:

   1: readonly List<IBuilderStrategy>[] stages;
   2:  
   3: /// <summary>
   4: /// Initialize a new instance of the <see cref="StagedStrategyChain{TStageEnum}"/> class.
   5: /// </summary>
   6: public StagedStrategyChain()
   7: {
   8:      stages = new List<IBuilderStrategy>[NumberOfEnumValues()];
   9:  
  10:        for(int i = 0; i < stages.Length; ++i)
  11:        {
  12:            stages[i] = new List<IBuilderStrategy>();
  13:        }
  14: }
posted @ 2008-12-28 16:43  new 维生素C.net()  阅读(1968)  评论(0编辑  收藏  举报