C# オブジェクト比較は、同様の種類の 2 つのオブジェクトの大文字と小文字を区別した相関関係を実行し、一方が他方と完全に一致しない、同等ではない、またはより顕著であるかどうかを示す値を返します。 C# には多数の管理者がおり、そのうちのいくつかは値を確認するために利用されます。これは、少なくとも 2 つの品質がどのように相互に同一であるかを確認するという、プログラミングにおける非常に基本的な用事です。
構文:
Public int compare(object s, object p)
どこ、
S と p は、比較する最初と 2 番目のオブジェクトです。
オブジェクト s と p の両方の値を表す整数値を返します。
ここで、C# でオブジェクト比較がどのように機能するかを示す例を見てみましょう。
using System; using System.Collections.Generic; class Someone { public string Name { get; set; } } class Ex { static void Main() { var someone = new List<Someone> { new Someone { Name = "Spandana Rao" } }; Console.WriteLine( someone.Contains( new Someone { Name = "Spandana Rao" })); } }
出力:
上記のプログラムでは、プログラムは false の出力を生成します。これを真にするには、Equals 手法を廃止したり、IEquatable
参照タイプの 2 つのケース (最初のモデルの person タイプなど) を見た時点で、CLR は参照と項目を対比させ、参照が類似の記事を強調表示しているかどうかをチェックします。 2 つの参照タイプは、それらの参照が監視スタック上の同様の項目に焦点を当てている場合、同等である可能性があります。参照が一意である可能性がある場合、フィールドが区別できないかどうかに関係なく、その時点でオブジェクトは同等ではありません。
C# の値の等価性は別のサイクルですが、より簡単に理解できます。価値のある均一性は、価値のあるソートのすべての出現フィールドを取得し、それらを個々のリクエストの 2 番目の例の機会フィールドとして考慮します。私は、ほとんどのデザイナーがすべての通信チェックで期待するのと同じように、尊重バランスが機能することを想像しています。
参照型に対して並列エクイティ アドミニストレータ (==) または Equals テクニックを利用するたびに、オブジェクトが呼び出されます。言及されている機会に等しい。何らかのインセンティブのバランスを提供したい場合、最も明白なアクティビティは、System.Object.Equals を置き換え、このテクニックを利用して 2 つの出現のフィールドについて考えることです。この方法論はタイプセーフではありません。 Equals 戦略は Object 型の競合を認識するため、この手法に渡されたオカレンスが person であることを保証できません。
このインターフェースは、私たちが直面している一種の健康問題への取り組みを支援するために明確に計画されました。明らかなように、このインターフェイスを使用すると、現在の Equals 戦略に取って代わるものを作成できます。特に Equals 戦略を採用しているため、この種の 2 回の機会に行われる通信検査は型で保護され、無効な安全性が保たれます。 Equals のデフォルトの置き換えられた実行で as キャストを利用することで、Person または無効のいずれかの機会と IEquatable
GetHashCode 戦略は、人格の公平性チェックの基本的な部分です。ハッシュ コードは、現在の例の状態を表す基本的な値です。基本的に、2 つのケースのハッシュ コードが類似している場合、それらは尊重に関して同等である可能性があります。しかし、万が一 2 つの記事に類似のハッシュ コードがないとしても、それらの記事は価値がある限り同等ではありません。この手法により、ハッシュ コードが一致しない場合に Equals を呼び出さずにコードと展示のサポートを検討できるようになります。アイテムの例のハッシュ コードを作成するための適切な、または最も理想的なアプローチについては、もう 1 日かかります。ここで行っていることは、2 つの互いに素な数値 (23 と 37) を取得し、それらを利用して発生の状態のハッシュ コードを制御し、最後の必須の値が表示されるようにすることだけです。繰り返しになりますが、ユーザーがどのように動作するかは現在重要ではありません。重要なのは、GetHashCode が提供できる展示報酬を受け取ることができるように、何らかの実行を行うことです。現在、いくつかの利益対応セマンティクスを適切に提供するクラスがあります。
したがって、基本オブジェクト以来、それを述べて結論を出したいと思います。 Equals テクニックは仮想として設定されており、Object から取得する任意のクラスで置き換えることができます。つまり、すべてです。現在、参照ではなく名前と年齢を参照しているため、p1.Equals(p3) の結果がどのように変化するかに注目してください。
以上がC# オブジェクトの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。