問題タブ [iequatable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 構造体を辞書のキーとして使用すると、奇妙なことが起こっています
これが私の構造です...
これらを辞書のキーとして使用していますが、それらが互いに適切に同等であるとは思いません..辞書の値は、bool フィールドを持つオブジェクトです。私はそれらに何かをし、それらがすべてtrueになるまでboolをtrueに変更するwhileループを持っています..それらがtrueに変更されることはないので、無限ループに陥ります..奇妙なのは、範囲外に出ないことです.エラーまたはそのようなもので、ブール値が変更されたビットをデバッグすると正常に動作するように見えますが、デバッグで辞書を見ると、すべてのブール値がまだ偽です
(注: タプルをキーとして使用していましたが、この構造体を作成して、簡単に乗算および加算できるようにしました)
確認したいのですが...
同じ値オブジェクトにアクセスしている辞書に 2 回アクセスしますか?
編集:辞書の値構造体は次のとおりです(上記の「もの」を置き換えました)
c# - オブジェクトの比較 (複数レベル)
5 つのプロパティを持つオブジェクトを作成したいのですが、各プロパティには 2 つの属性があります。その後、オブジェクトが同じであれば比較し、同じカテゴリにグループ化します。
コードは次のとおりです。
アイテム.cs
SortProperty.cs
Program.cs (コーディングをテストするメイン クラス)
と(SortPropc)trueの間に同じプロパティがあるため、結果が返されるはずですが、 が返されます。objAobjBfalse
論理的な部分が欠けていると思います.4時間椅子に座っていましたが、修正できませんでした. どなたか解いて頂けないでしょうか?
c# - IEquatable を使用してオブジェクトのコレクションが等しいかどうかをテストする
テスト時に、次のような呼び出しを使用してこれらのオブジェクトのコレクションをIEquatable<T>簡単に比較できるように、実装したクラスがあります。IEnumerable
これは現在うまく機能していますが、いくつかのしつこい疑問があります。クラスは次のようになります。
をオーバーライドすることについての私の理解はGetHashCode()、クラスの同じインスタンスを指すオブジェクトを比較するために使用されるということです。この機会にこれが必要になる可能性は非常に低いです (将来的にも)。
この理解は正しいですか? もしそうなら、コードを安全に削除できますか?
単体テストでこれらのオブジェクトのコレクションを比較するより良い方法はありますか?
私は MSTest を使用するように制約されていますが。
タンス
c# - Object.Equals をオーバーライドする場合、渡されたオブジェクトの Equals(MyType) を使用するのは適切ですか?
簡単な例として、多くの点で異なるが「同等」とみなすことができる 2 つのクラスがあるとします。
これにより、WholeNumber と同等であると主張するすべてのオブジェクトを WholeNumber の Equals(object) 関数に渡して、WholeNumber が他のクラスについて知る必要なく、目的の結果を得ることができます。
このパターンは良いアイデアですか?他のクラスで IEquatable を使用することは、(意味のあるところで) 一般的なことですか?