C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でのIEnumeratorとIEnumerableインターフェイスの違い


IEnumerableとIEnumeratorはどちらもC#のインターフェイスです。

IEnumerableは、IEnumeratorインターフェイスを返す単一のメソッドGetEnumerator()を定義するインターフェイスです。

これは、IEnumerableをforeachステートメントで使用できることを実装するコレクションへの読み取り専用アクセスで機能します。

IEnumeratorには、MoveNextとResetの2つのメソッドがあります。 Currentというプロパティもあります。

以下に、IEnumerableとIEnumeratorの実装を示します。

class Demo : IEnumerable, IEnumerator {
   // IEnumerable method GetEnumerator()
   IEnumerator IEnumerable.GetEnumerator() {
      throw new NotImplementedException();
   }
   public object Current {
      get { throw new NotImplementedException(); }
   }
   // IEnumertor method
   public bool MoveNext() {
      throw new NotImplementedException();
   }
   // IEnumertor method
      public void Reset() {
      throw new NotImplementedException();
   }
}

上にIEnumeratorの2つのメソッドがあります。

// IEnumertor method
public bool MoveNext() {
   throw new NotImplementedException();
}

// IEnumertor method
public void Reset() {
   throw new NotImplementedException();
}

  1. GoとJavaの違い。

    行く Goは手続き型プログラミング言語です。プログラムはパッケージを使用して組み立てられます。動的言語に似たパターンを採用する環境をサポートします。 Java Javaはオブジェクト指向プログラミング言語です。 Javaは静かで高速、信頼性が高く、安全です。最も広く使用されている言語でもあります。 GoとJavaの重要な違いは次のとおりです。 Sr。いいえ。 キー 移動 Java 1 タイプ Goは手続き型プログラミング言語であり、動的言語と同様のパターンをサポートしています。 Javaはオブジェクト指向プログラミング言語です。 2 クラスのサポート

  2. 抽象クラスとインターフェースの違い

    抽象クラスは、デフォルトの動作を実装するインスタンスメソッドを持つことができます。インターフェイスは定数とインスタンスメソッドのみを宣言できますが、デフォルトの動作を実装することはできず、すべてのメソッドは暗黙的に抽象化されています。インターフェースにはすべてのパブリックメンバーがあり、実装はありません。