C#-Objektvergleich

PHPz
Freigeben: 2024-09-03 15:03:50
Original
991 Leute haben es durchsucht

C#-Objektvergleiche führen eine Korrelation zweier Objekte ähnlicher Art unter Berücksichtigung der Groß- und Kleinschreibung durch und geben einen Wert zurück, der zeigt, ob eines nicht genau, gleichwertig oder auffälliger als das andere ist. C# hat viele Administratoren und einige von ihnen werden zur Analyse von Werten eingesetzt. Dies ist eine äußerst grundlegende Aufgabe beim Programmieren – zu überprüfen, wie sich mindestens zwei Eigenschaften miteinander identifizieren.

Syntax:

Public int compare(object s, object p)
Nach dem Login kopieren

Wo,

S und p sind das erste und zweite zu vergleichende Objekt.

Es gibt einen ganzzahligen Wert zurück, der die Werte der Objekte s und p darstellt.

Wie vergleiche ich Objekte in C#?

Jetzt sehen wir ein Beispiel dafür, wie Objektvergleiche in C# funktionieren.

Beispiel #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" }));
}
}
Nach dem Login kopieren

Ausgabe:

C#-Objektvergleich

Im obigen Programm erzeugt das Programm eine Ausgabe von false. Um es wahr zu machen, müssen wir eine Sortierung durchführen, ohne die Equals-Technik aufzuheben oder den IEquatable-Befehl auszuführen. Über die Schnittstelle geben Sie die Autorität darüber ab, wie zwei Beispiele Ihrer Art analysiert werden, und erkennen die Standardkorrelationssysteme der CLR an. Für den Fall, dass es sich bei Ihrem Typ um einen Referenztyp (eine Klasse) handelt, erhalten Sie einen Charakterausgleich, und wenn Ihr Typ ein Werttyp (eine Struktur) ist, erhalten Sie einen Wertwertausgleich.

Wenn Sie sich zwei Fälle eines Referenztyps ansehen (wie den Personentyp in meinem ersten Modell), vergleicht die CLR die Referenzen mit den Elementen, um zu prüfen, ob die Referenzen einen ähnlichen Artikel hervorheben. Zwei Referenztypen können gleichwertig sein, wenn sich ihre Referenz auf ein ähnliches Element im überwachten Stapel bezieht. Wenn die Referenzen eindeutig sind, sind Objekte zu diesem Zeitpunkt nicht gleichwertig – unabhängig davon, ob ihre Felder nicht unterscheidbar sind.

C#-Wertegleichheit ist ein alternativer Zyklus, der jedoch viel einfacher zu verstehen ist. Werteinheitlichkeit nimmt alle Vorkommensfelder einer Wertsorte und ordnet sie den Ereignisfeldern eines zweiten Beispiels in einer einzelnen Anfrage zu. Ich würde mir vorstellen, dass Wertschätzungsbalance weitgehend so funktioniert, wie es die meisten Designer bei allen Korrespondenzprüfungen erwarten.

Jedes Mal, wenn Sie den Parallel-Equity-Administrator (==) oder die Equals-Technik für einen Referenztyp verwenden, rufen Sie Object auf. Gleiches gilt für die genannten Anlässe. Wenn Sie ein gewisses Anreizgleichgewicht bieten möchten, besteht die naheliegendste Aufgabe darin, System.Object.Equals zu ersetzen und diese Technik zu nutzen, um die Bereiche Ihrer beiden Ereignisse zu berücksichtigen. Diese Methode ist nicht typsicher. Da die Equals-Strategie einen Konflikt vom Typ Objekt anerkennt, können wir nicht sicherstellen, dass das Vorkommen, das an diese Technik übergeben wurde, eine Person ist.

Diese Schnittstelle wurde ausdrücklich entwickelt, um uns bei der Bewältigung der Art von Gesundheitsproblemen zu helfen, mit denen wir konfrontiert sind. Es liegt auf der Hand, dass wir mit dieser Schnittstelle eine konkrete Alternative zu unserer aktuellen Equals-Strategie schaffen können. Da wir eine spezielle Equals-Strategie verfolgen, sind alle Korrespondenzprüfungen, die zweimal in unserer Art durchgeführt werden, typgeschützt und ungültig. Durch die Verwendung der in der standardmäßigen ersetzten Ausführung von Equals können wir entweder eine Gelegenheit von Person oder ungültig und unsere Verwendung von IEquatable weitergeben. Entspricht der Rückgabefälschung, was garantiert, dass unsere Strategien nicht ungültig werden.

Die GetHashCode-Strategie ist ein grundlegender Bestandteil der Überprüfung der Persönlichkeitsgleichheit. Ein Hash-Code ist ein grundlegender Wert, der den Zustand des aktuellen Beispiels angibt. Wenn zwei Fälle einen ähnlichen Hash-Code haben, könnten sie im Wesentlichen hinsichtlich der Wertschätzung gleichwertig sein. Wenn jedoch zwei Artikel keinen ähnlichen Hash-Code haben, sind sie vom Wert her sicherlich nicht gleichwertig. Diese Technik ermöglicht uns die Berücksichtigung von Code- und Ausstellungsunterstützung, indem Equals nicht aufgerufen wird, wenn die Hash-Codes nicht übereinstimmen. Was den richtigen oder idealsten Ansatz zur Erstellung eines Hash-Codes für ein Artikelbeispiel angeht, ist das ein Gespräch für einen weiteren Tag. Alles, was wir hier tun, ist, zwei teilerfremde Zahlen (23 und 37) zu nehmen und sie zu verwenden, um die Hash-Codes des Zustands unseres Ereignisses so zu steuern, dass sie an einem Endwert angezeigt werden. Auch hier spielt es keine Rolle, wie der Benutzer arbeitet. Entscheidend ist, dass wir etwas Ausführung leisten, damit wir die Ausstellungsbelohnungen erhalten können, die GetHashCode geben kann. Derzeit haben wir eine Klasse, die einige Nutzenkorrespondenzsemantiken angemessen bietet.

Fazit

Daher möchte ich abschließend feststellen, dass es sich um das Basisobjekt handelt. Die Equals-Technik ist als virtuell definiert und kann in jeder Klasse ersetzt werden, die von Object stammt, was nun ja alles ist. Beachten Sie, wie sich dadurch die Konsequenz von p1.Equals(p3) ändert, da derzeit der Name und das Alter und nicht die Referenz berücksichtigt werden.

Das obige ist der detaillierte Inhalt vonC#-Objektvergleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!