[解決済み] IComparableインターフェイスの実装方法
2023-06-11 13:58:45
質問
あるクラスのインスタンスを配列に格納しています。
BankAccount[] a;
. . .
a = new BankAccount[]
{
new BankAccount("George Smith", 500m),
new BankAccount("Sid Zimmerman", 300m)
};
この配列に値を入れたら、残高でソートしたいと思います。そのためには、各要素がソート可能であるかどうかを
IComparable
.
私は、これをインターフェイスを使って行う必要があります。今のところ、私は次のようなコードを持っています。
public interface IComparable
{
decimal CompareTo(BankAccount obj);
}
しかし、これが正しい解決策なのかどうかわかりません。 何かアドバイスがあればお願いします。
どのように解決するのですか?
を定義してはいけません。
IComparable
を自分で定義してはいけません。それはすでに定義されています。むしろ、あなたは
を実装する必要があります。
IComparable
あなたの
BankAccount
クラスに追加します。
を定義したところで
class BankAccount
を実装していることを確認してください。
IComparable
インターフェースを実装していることを確認してください。次に
BankAccount.CompareTo
と書いて、2つのオブジェクトの残高を比較します。
public class BankAccount : IComparable<BankAccount>
{
[...]
public int CompareTo(BankAccount that)
{
if (this.Balance < that.Balance) return -1;
if (this.Balance == that.Balance) return 0;
return 1;
}
}
編集 をクリックすると、コメントからJeffrey L Whitledgeの解答が表示されます。
public class BankAccount : IComparable<BankAccount>
{
[...]
public int CompareTo(BankAccount that)
{
return this.Balance.CompareTo(that.Balance);
}
}
関連
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] 辞書を繰り返し使用するには?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] C++でインターフェイスを宣言するには?
-
[解決済み] インターフェースとベースクラス
-
[解決済み] C#のリフレクションで型がインターフェースを実装しているかどうかを判断する方法
-
[解決済み】「インターフェースに合わせたプログラム」とはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。