-1

Java 優先度キュー アルゴから C# にエクスポートしようとしています。しかし、 Comparable<> インターフェイスには問題があります

ジャワ

public class MaxPQ<Key extends Comparable<Key>>
{
    private Key[] pq; // heap-ordered complete binary tree
    private int N = 0; // in pq[1..N] with pq[0] unused
    public MaxPQ(int maxN)
    { pq = (Key[]) new Comparable[maxN+1]; }
    //...
    private bool less(int i, int j) 
    { return pq[i].compareTo(pq[j]) < 0; }

}

c#

public class MaxPQ<Key> where Key : IComparable<Key>
{
    private Key[] pq; // heap-ordered complete binary tree
    private int N = 0; // in pq[1..N] with pq[0] unused
    public MaxPQ(int maxN)
    { pq = new Key[maxN + 1]; }
    //...
    private bool less(int i, int j) 
    { return pq[i].compareTo(pq[j]) < 0; }//Error

}

エラーがスローされます:「キー」には「compareTo」の定義が含まれておらず、タイプ「キー」の最初の引数を受け入れる拡張メソッド「compareTo」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

あなたはこれを解決できますか?

4

2 に答える 2

0

それCompareToはC#にあります。Capitalization Conventionsに従って、パブリック メソッドの名前は PascalCased です。

複数の単語で構成されるすべてのパブリック メンバー、型、および名前空間の名前には、Pascal の大文字と小文字を使用してください。

于 2012-12-07T13:18:14.293 に答える
0

compareToに変更する必要がありますCompareTo

于 2012-12-07T13:17:34.357 に答える