Hallo,
ich habe eine grundsätzliche Frage bezgl. C# Referenzen auf eigene Objekte.
Es gibt ja 3 Möglichkeiten Objekte auf Gleichheit zu überprüfen (keine Strings):
1. Methode ReferenceEquals der Klasse Object
2. Equals der Klasse Object
3. == Operator
Alle 3 Möglichkeiten vergleichen eigene Objekte (z.B. eine eigene Klasse Auto)
in Bezug auf die Referenz des Objektes -> also ob es sich um die gleiche Instanz der Klasse handelt (gleicher Speicherbereich).
Falls ich jetzt nicht auf die Referenz vergleichen möchte
sondern auf den Wert der Attribute der Objekte so
muss ich die Funktionen in der Klasse überladen.
Habe ich das so richtig verstanden?
Weiterhin:
Wenn ich folgende Funktion habe:
Gibt mir die Funktion dann eine Referenz auf das Objekt zurück oder eine Kopie?
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.
Gruss
ich habe eine grundsätzliche Frage bezgl. C# Referenzen auf eigene Objekte.
Es gibt ja 3 Möglichkeiten Objekte auf Gleichheit zu überprüfen (keine Strings):
1. Methode ReferenceEquals der Klasse Object
2. Equals der Klasse Object
3. == Operator
Alle 3 Möglichkeiten vergleichen eigene Objekte (z.B. eine eigene Klasse Auto)
in Bezug auf die Referenz des Objektes -> also ob es sich um die gleiche Instanz der Klasse handelt (gleicher Speicherbereich).
Falls ich jetzt nicht auf die Referenz vergleichen möchte
sondern auf den Wert der Attribute der Objekte so
muss ich die Funktionen in der Klasse überladen.
Habe ich das so richtig verstanden?
Weiterhin:
Wenn ich folgende Funktion habe:
Code:
Auto GetAutoById(string strId)
{
foreach(Auto cAuto in ListeMitAutoObjekten)
{
if(cAuto.strId == strId)
{
return cAuto;
}
}
}
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.
Gruss