2012-02-07 23 views
0

我已经定义了一个名为StringResourceCollection的类。 我的班级宣言如下:修复FxCop规则:枚举应该是强类型的

namespace EPGObjectModel.IDE 
{ 
    using System; 
    using System.Collections; 
    using System.Collections.Generic; 
    using System.Text; 

    public class StringResourceCollection : CollectionBase, IEnumerator 
    { 
     #region Fields 

     private int index = -1; 

     #endregion Fields 

     #region Properties 

     public object Current 
     { 
      get { return this.List[index]; } 
     } 

     #endregion Properties 

     #region Indexers 

     public EPGString this[string index] 
     { 
      get 
      { 
       Reset(); 
       while (this.MoveNext()) 
       { 
        if (((EPGString)Current).StringId == index || ((EPGString)Current).StringName.Equals(index)) 
         return (EPGString)Current; 
       } 
       return null; 
      } 
     } 

     #endregion Indexers 

     #region Methods 

     public int Add(EPGString item) 
     { 
      try 
      { 
       return List.Add(item); 
      } 
      catch(Exception) 
       { 
        throw; 
       } 
     } 

     public void Modify(string id, EPGString resourceToModify) 
     { 
      EPGString stringRes = this[id]; 
      stringRes.DeletePermission = resourceToModify.DeletePermission; 
      stringRes.ModifyPermission = resourceToModify.ModifyPermission; 
      stringRes.StringInputLanguage = resourceToModify.StringInputLanguage; 
      stringRes.StringLanguage = resourceToModify.StringLanguage; 
      stringRes.StringName = resourceToModify.StringName; 
      stringRes.StringText = resourceToModify.StringText; 
     } 

     public void Modify(EPGString resourceToModify) 
     { 
      EPGString stringRes = this[resourceToModify.StringName]; 
      if (stringRes == null) 
       return; 
      stringRes.DeletePermission = resourceToModify.DeletePermission; 
      stringRes.ModifyPermission = resourceToModify.ModifyPermission; 
      stringRes.StringInputLanguage = resourceToModify.StringInputLanguage; 
      stringRes.StringLanguage = resourceToModify.StringLanguage; 
      stringRes.StringName = resourceToModify.StringName; 
      stringRes.StringText = resourceToModify.StringText; 
     } 

     public bool MoveNext() 
     { 
      this.index++; 
      return (this.index < this.List.Count); 
     } 

     public void Remove(EPGString item) 
     { 
      try 
      { 
       List.Remove(item); 
      } 
      catch (ArgumentException) 
      { 
       throw; 
      } 
     } 

     public void Reset() 
     { 
      index = -1; 
     } 

     #endregion Methods 
    } 
} 

当我运行我的代码的FxCop工具,它显示错误“枚举应该是强类型” 我怎样才能解决的FxCop规则:枚举应该是强类型在我的班上? 这里需要做什么修改?

回答

5

既然要实现字符串的集合,你应该实现

IEnumerator<string> 

除了IEnumerator的