Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

UriTemplateEquivalenceComparer-Klasse

 

Veröffentlicht: Oktober 2016

Eine Klasse, mit der UriTemplate-Instanzen hinsichtlich ihrer Strukturgleichheit (anstelle ihrer Verweisgleichheit) verglichen werden.

Namespace:   System
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

System.Object
  System.UriTemplateEquivalenceComparer

public class UriTemplateEquivalenceComparer : IEqualityComparer<UriTemplate>

NameBeschreibung
System_CAPS_pubmethodUriTemplateEquivalenceComparer()

Initialisiert eine neue Instanz der UriTemplateEquivalenceComparer-Klasse.

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_pubmethodEquals(UriTemplate, UriTemplate)

Vergleicht zwei UriTemplate-Instanzen hinsichtlich ihrer Gleichheit.

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode(UriTemplate)

Ruft einen Hashcode für die angegebene UriTemplate-Instanz ab.

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

UriTemplate-Instanzen werden standardmäßig mithilfe von Verweisgleichheit verglichen. Die UriTemplateEquivalenceComparer-Klasse wertet Übereinstimmungen anstelle der standardmäßigen Verweisgleichheit mithilfe von IsEquivalentTo(UriTemplate) aus. Diese Klasse ist hilfreich, wenn Sie zwei UriTemplate-Instanzen auf Basis ihrer übereinstimmenden URIs vergleichen möchten und nicht mithilfe strikter Verweisgleichheit.

Im folgenden Beispiel wird der Unterschied zwischen Verweisgleichheit und Strukturgleichheit veranschaulicht. Außerdem wird die Verwendung von UriTemplateEquivalenceComparer als Vergleich in einem Wörterbuch veranschaulicht.

// Define two structurally equivalent templates
UriTemplate temp1 = new UriTemplate("weather/{state}/{city}");
UriTemplate temp2 = new UriTemplate("weather/{country}/{village}");

// Notice they are not reference equal, in other words
// they are do not refer to the same object
if (temp1 == temp2)
    Console.WriteLine("{0} and {1} are reference equal", temp1, temp2);
else
    Console.WriteLine("{0} and {1} are NOT reference equal", temp1, temp2);

// Notice they are structrually equal
if (temp1.IsEquivalentTo(temp2))
    Console.WriteLine("{0} and {1} are structurally equal", temp1, temp2);
else
    Console.WriteLine("{0} and {1} are NOT structurally equal", temp1, temp2);

// Create a dictionary and use UriTemplateEquivalenceComparer as the comparer
Dictionary<UriTemplate, object> templates = new Dictionary<UriTemplate, object>(new UriTemplateEquivalenceComparer());

// Add template 1 into the dictionary
templates.Add(temp1, "template1");

// The UriTemplateEquivalenceComparer will be used here to compare the template in the table with template2
// they are structurally equivalent, so ContainsKey will return true.
if (templates.ContainsKey(temp2))
    Console.WriteLine("Both templates hash to the same value");
else
    Console.WriteLine("Both templates do NOT hash to the same value");

.NET Framework
Verfügbar seit 3.5

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: