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

C#でのIComparableインターフェイスとIComparerインターフェイスの違い


C#のIComparableインターフェイス

C#のIComparableインターフェイスを使用して、要素を並べ替えます。また、現在のインスタンスを同じタイプの別のオブジェクトと比較するためにも使用されます。

特定のタイプの2つのオブジェクトを比較する方法を提供します。 IComparableインターフェースを実装する際には、CompareTo()メソッドも実装する必要があることを忘れないでください。

例を見てみましょう-

int IComparable.CompareTo(object ob) {
   Vehicle v=(Vehicle)ob;
   return String.Compare(this.make,v.make);
}
を返します

C#のIComparerインターフェイス

IComparerインターフェイスは、2つのオブジェクトを比較する要素を並べ替えるために使用され、追加の比較方法を提供します。

private class sortYearAscendingHelper : IComparer {
   int IComparer.Compare(object ob1, object ob2) {
      Vehicle v1=(Vehicle)ob1;
      Vehicle v2=(Vehicle)ob2;
      if (v1.year > v2.year)
      return 1;
      if (v1.year < v2.year)
      return -1;
      else
      return 0;
   }
}

ここで、IComparerオブジェクトのインスタンスを返します。

public static IComparer sortYearAscending() {
   return (IComparer) new sortYearAscendingHelper();
}

  1. GoとJavaの違い。

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

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

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