演算子のオーバーロード ==, !=, Equals
2023-11-14 05:45:17
疑問点
私はすでに 質問
を実装する必要があることは理解しています。
==
,
!=
と
Equals()
.
public class BOX
{
double height, length, breadth;
// this is first one '=='
public static bool operator== (BOX obj1, BOX obj2)
{
return (obj1.length == obj2.length
&& obj1.breadth == obj2.breadth
&& obj1.height == obj2.height);
}
// this is second one '!='
public static bool operator!= (BOX obj1, BOX obj2)
{
return !(obj1.length == obj2.length
&& obj1.breadth == obj2.breadth
&& obj1.height == obj2.height);
}
// this is third one 'Equals'
public override bool Equals(BOX obj)
{
return (length == obj.length
&& breadth == obj.breadth
&& height == obj.height);
}
}
を上書きするように適切にコードを書いたと仮定します。
==
,
!=
,
Equals
という演算子を使っています。しかし、以下のようなコンパイルエラーが発生します。
'myNameSpace.BOX.Equals(myNameSpace.BOX)' is marked as an override
but no suitable method found to override.
そこで質問ですが、上記の演算子 & をどのようにオーバーライドすれば、このエラーを取り除くことができるのでしょうか?
どのように解決するのですか?
を宣言したのだと思います。
Equals
メソッドをこのように宣言しています。
public override bool Equals(BOX obj)
というのは
object.Equals
メソッドはオブジェクトを受け取るので、このシグネチャでオーバーライドするメソッドはありません。このようにオーバーライドする必要があります。
public override bool Equals(object obj)
タイプセーフの
Equals,
を実装することができます。
IEquatable<BOX>
.
関連
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み] EqualsメソッドがオーバーライドされたときにGetHashCodeをオーバーライドすることが重要な理由は何ですか?
-
[解決済み] ダイレクトキャスト vs 'as'演算子?
-
[解決済み] C#の==とEquals()の違いについて
-
[解決済み] なぜJavaには演算子のオーバーローディングがないのですか?
-
[解決済み] Javaにおける演算子のオーバーローディング
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み] 関数を終了するには?
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み】プロセスが実行されているかどうかを知るには?