Re: Objekt Identität
- From: Stephan Keil <Stephan.Keil@xxxxxx>
- Date: Sun, 22 Jan 2006 20:50:49 +0100
Hallo Herfried,
danke für die schnelle Antwort!
Ja, jede Instanz eines Verweistyps hat eine Identität. In VB.NET können mittels der Operatoren 'Is' und 'IsNot', in C# mittels '==' und '!=' zwei Verweise dahingehend verglichen werden, ob sie auf das selbe Objekt zeigen. Im einfachsten Fall kannst du also das Objekt selbst als Schlüssel benutzen.
OK, damit kann ich Objekte auf Identitätsgleichheit testen. Das alleine ist aber nicht besonders effizient: angenommen ich habe 1 Million Referenzen in einem Container gespeichert und möchte _effizient_ feststellen, ob ein bestimmtes Anfrageobjekt in dem Container gespeichert ist. Wenn mir nur die Gleichheitsprüfung zur Verfügung steht, muss ich 1 Millionen Vergleiche durchführen. Wenn es aber einen fixen Identitäts-Pointer gäbe, könnte ich den Container danach sortieren und binär suchen; dann käme ich mit etwa 20 Vergleichen aus!
Es gibt den Hash-Wert eines Objektes, nach dem ich sortieren kann. Der ist aber nicht fix, sondern vom Zustand des Objektes abhängig. Ein fixer Identitätswert wäre also sehr hilfreich (allerdings weiss ich nicht, wie man ihn in .NET ohne Overhead zur Verfügung stellen könnte).
- Stephan .
- Follow-Ups:
- Re: Objekt Identität
- From: Immo Landwerth
- Re: Objekt Identität
- From: Herfried K. Wagner [MVP]
- Re: Objekt Identität
- References:
- Objekt Identität
- From: Stephan Keil
- Re: Objekt Identität
- From: Herfried K. Wagner [MVP]
- Objekt Identität
- Prev by Date: Re: Objekt Identität
- Next by Date: Re: Objekt Identität
- Previous by thread: Re: Objekt Identität
- Next by thread: Re: Objekt Identität
- Index(es):
Relevant Pages
|
Loading