Zum Hauptinhalt springen

Klasse Object

Jede Klasse erbt automatisch von der Klasse Object.

Methode/EigenschaftSichtbarkeitBeschreibung
EqualsPublicÜberprüft, ob das aktuelle Objekt einem anderen Objekt entspricht.
GetHashCodePublicGibt den Hashcode des aktuellen Objekts zurück.
GetTypePublicGibt den Typ des aktuellen Objekts zurück.
ToStringPublicGibt eine Zeichenfolgendarstellung des aktuellen Objekts zurück.
FinalizeProtectedWird aufgerufen, wenn das Objekt durch den Garbage Collector freigegeben wird.
MemberwiseCloneProtectedErstellt eine flache Kopie des aktuellen Objekts.
ReferenceEqualsPublic, StaticÜberprüft, ob zwei Objekte auf die gleiche Speicheradresse verweisen.

Referenzvergleich

Equals und ReferenceEquals sind beide Methoden der Klasse Object in C#, die dazu verwendet werden, um Objekte zu vergleichen. Der Hauptunterschied zwischen den beiden Methoden besteht darin, wie sie Objekte vergleichen.

Equals vergleicht die inhaltlichen Werte von zwei Objekten, während ReferenceEquals die Speicheradresse von zwei Objekten vergleicht. Mit anderen Worten, Equals gibt true zurück, wenn zwei Objekte den gleichen inhaltlichen Wert haben, während ReferenceEquals nur true zurückgibt, wenn beide Variablen auf dasselbe Objekt im Speicher verweisen.

Hier ist ein Beispiel, das die Unterschiede zwischen Equals und ReferenceEquals verdeutlicht:

string s1 = "hello";
string s2 = "hello";
string s3 = s1;

bool b1 = s1.Equals(s2); // true, da der inhaltliche Wert der beiden Strings gleich ist
bool b2 = s1.Equals(s3); // true, da beide Variablen auf dasselbe Objekt verweisen
bool b3 = Object.ReferenceEquals(s1, s2); // false, da s1 und s2 unterschiedliche Objekte im Speicher sind
bool b4 = Object.ReferenceEquals(s1, s3); // true, da s1 und s3 auf dasselbe Objekt im Speicher verweisen

In diesem Beispiel sind s1 und s2 unterschiedliche Variablen, die auf dasselbe Objekt im Speicher verweisen, da beide den Wert "hello" enthalten. s3 ist eine andere Variable, die auf dasselbe Objekt im Speicher wie s1 verweist. Equals gibt true zurück, wenn der inhaltliche Wert von s1 und s2 gleich ist, was hier der Fall ist. ReferenceEquals gibt nur true zurück, wenn beide Variablen auf dasselbe Objekt im Speicher verweisen, was hier für s1 und s3 der Fall ist, aber nicht für s1 und s2.

ToString() - Methode

Die ToString-Methode gibt standardmäßig den vollständig qualifizierten Namen der Klasse zurück, aber jede Klasse kann diese Methode überschreiben, um ihren eigenen Textwert zu liefern. Hier ist ein Beispiel, wie man die ToString-Methode in einer benutzerdefinierten Klasse überschreiben kann:

public class Person
{
public string Name { get; set; }
public int Age { get; set; }

public override string ToString()
{
return $"{Name} ({Age})";
}
}

In diesem Beispiel definiert die Person-Klasse eine Name- und eine Age-Eigenschaft. Die ToString-Methode wird überschrieben, um einen formatierten String zurückzugeben, der den Namen und das Alter der Person enthält. Wenn Sie nun eine Person-Instanz erstellen und die ToString-Methode aufrufen, erhalten Sie den formatierten Textwert:

Person p = new Person { Name = "Alice", Age = 30 };
string text = p.ToString(); // "Alice (30)"

Die ToString-Methode kann nützlich sein, um Objekte in einer lesbaren Form anzuzeigen, beispielsweise in Debugging-Szenarien oder in Benutzeroberflächen, die den Benutzern die aktuelle Statusinformationen des Programms anzeigen.


Kommentare