2012-02-07 9 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を

以外

IEnumerator<string> 

を実装する必要があります

関連する問題