問題タブ [gethashcode]

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.

0 投票する
5 に答える
754 参照

c# - なぜfalseを返すのですか?new Person( "james")== new Person( "james")?

私はオーバーライドを持ってGetHashCodeおりEquals、両方のメソッドは異なるオブジェクトに対して同じ結果を提供しますが、なぜそれでもfalseになるのですか?

0 投票する
5 に答える
1605 参照

c# - DateRange クラスに適した hashCode は何でしょうか

私は次のクラスを持っています

次のような DateRange をキーとする辞書にいくつかの値を格納する必要があります。

クラスのGetHashCode()メソッドをオーバーライドするにはどうすればよいですか?DateRange

0 投票する
2 に答える
379 参照

c# - Gethashcode() 関数

C1 と c2 のハッシュコードが同じでないのはなぜですか? コードは「同じ」になりません....(両方のクラスで i=0 )

0 投票する
5 に答える
8914 参照

c# - ValueType.GetHashCode() がそのまま実装されるのはなぜですか?

からValueType.cs

KeyValuePair をディクショナリのキーとして使用していたときに (xml 属性名 (列挙型) とその値 (文字列) を格納していた)、今日これに悩まされ、すべてのフィールドに基づいてハッシュコードが計算されることを期待していました。しかし、実装によれば、キー部分のみを考慮していました。

例 (Linqpad からの c/p):

私が推測する最初の非静的フィールドは、宣言順の最初のフィールドを意味します。これは、何らかの理由でソース内の変数の順序を変更するときに問題を引き起こす可能性があり、それがコードを意味的に変更しないと信じています。

0 投票する
2 に答える
864 参照

c# - WCFの抽象メソッドサーバー側を維持する方法

すべてのドメインオブジェクトにGetHashCodeを実装するように強制しています。

これらのドメインオブジェクトをWCFを介して公開する場合、次の生成されたサービスをコンパイルするには、更新後の変更が必要です。

GetHashCodeの要件を維持する方法についてのアイデアはありますが、クライアント上のコードの要件を(更新または部分的なクラスとして)削除しますか?

0 投票する
1 に答える
828 参照

wpf - ContentControlでgetHashCodeとEqaulをオーバーライドするwpf

こんにちは私はContentControlから派生したクラスを持っていて、GetHashCodeとEqualメソッドをオーバーライドできません。エラーが発生します

エラー5は、継承されたメンバー'System.Windows.DependencyObject.GetHashCode()'が封印されているため、オーバーライドできません。このメソッドをオーバーライドする方法はありますか?LINQのUnionメソッドを使用する必要がありますが、通常とは異なる条件のオブジェクトを比較する必要があります。それを行う方法はありますか?

0 投票する
2 に答える
808 参照

c# - GetHashCodeの同等性

これについて疑問に思ったので、聞いてみようと思います。

表示されるほとんどの場所では、Equalsをオーバーライドするために、メンバーごとの同等性のためにGetHashCodeと同じセマンティックロジックを使用しています...ただし、通常は異なる実装を使用します。

タイプにメンバーごとの等式を実装している場合(たとえば、辞書に格納する場合)、GetHashCodeをオーバーライドしてから、Equalsに対して次のようにします。

0 投票する
4 に答える
5665 参照

c# - Double.GetHashCode アルゴリズムまたはオーバーライド

マネージ コードとアンマネージ コードの両方を実行するアプリケーション プロジェクトがあり、両方のシステムで double 値をハッシュするために同じアルゴリズムを使用する必要があります。そのため、System.Double.GetHashCode() をオーバーライドするか、C++ コードでそのアルゴリズムを使用します。double.gethashcode アルゴリズムが見つからず、関数をオーバーライドすることにしました。しかし、奇妙なエラーが発生しました。

double 型を System.Double に暗黙的に変換することはできません

コードは次のとおりです。

行 2 のコメントを外すと、Cannot implicitly convert type double to System.Double エラーが発生します。1行目を実行してもエラーは発生しませんが、オーバーライドされたコードは機能しません。

多分それは私がしようとしている非常に悪いことです。誰でも double.gethashcode アルゴリズムについて知っているので、同等の C++ コードを記述して正確な int 値を取得できますか?

0 投票する
3 に答える
33017 参照

c# - C# で疑似乱数ジェネレーターをシードする

C# のRandomクラスのインスタンスのシードが必要ですが、ほとんどの人が現在の時間のティック カウンターを使用していると読みました。ただし、これは 64 ビット値であり、シードは 32 ビット値である必要があります。GetHashCode()を返すメソッドは、intそのオブジェクトに適切に分散された値を提供する必要があり、これを使用して、ティック カウントの下位 32 ビットのみを使用することを避けることができると考えました。Int64ただし、データ型の GetHashCode() については何も見つかりませんでした。

だから、それはあまり重要ではないことはわかっていますが、次のことは私が思うほどうまくいくでしょうか(ランダム性を試行錯誤することはできません)、それとも(int)DateTime.Now.Ticksシードとして使用するのと同じように機能するのでしょうか? それとも、それはさらに悪いことですか?誰がこれに光を当てることができますか。

編集:なぜシードが必要なのに、Random()コンストラクターに仕事をさせないのですか? 同じランダム シーケンスに同じシードを使用する他のクライアントにシードを送信する必要があります。

0 投票する
3 に答える
36493 参照

c# - IEqualityComparerでのGetHashCodeの役割は何ですか.NETで?

IEqualityComparerインターフェイスのGetHashCodeメソッドの役割を理解しようとしています。

次の例はMSDNから抜粋したものです。

Equalsメソッドの実装は、2つのBoxオブジェクトを比較するのに十分ではありませんか?ここで、オブジェクトの比較に使用されるルールをフレームワークに通知します。GetHashCodeが必要なのはなぜですか?

ありがとう。

ルシアン