C# オブジェクトの比較

PHPz
リリース: 2024-09-03 15:03:50
オリジナル
1044 人が閲覧しました

C# オブジェクト比較は、同様の種類の 2 つのオブジェクトの大文字と小文字を区別した相関関係を実行し、一方が他方と完全に一致しない、同等ではない、またはより顕著であるかどうかを示す値を返します。 C# には多数の管理者がおり、そのうちのいくつかは値を確認するために利用されます。これは、少なくとも 2 つの品質がどのように相互に同一であるかを確認するという、プログラミングにおける非常に基本的な用事です。

構文:

Public int compare(object s, object p)
ログイン後にコピー

どこ、

S と p は、比較する最初と 2 番目のオブジェクトです。

オブジェクト s と p の両方の値を表す整数値を返します。

C# でオブジェクトを比較するには?

ここで、C# でオブジェクト比較がどのように機能するかを示す例を見てみましょう。

例 #1

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" }));
}
}
ログイン後にコピー

出力:

C# オブジェクトの比較

上記のプログラムでは、プログラムは false の出力を生成します。これを真にするには、Equals 手法を廃止したり、IEquatable を実行したりせずに並べ替えを行う必要があります。インターフェイスを使用すると、同じ種類の 2 つの例をどのように分析するかについての権限を放棄し、CLR のデフォルトの相関システムを認識することができます。あなたのソートが参照型 (クラス) である場合は、キャラクターのバランスが得られ、ソートが価値のある種類 (構造体) である場合は、評価のバランスが得られます。

参照タイプの 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート