Ich bin ein wenig verwirrt über Inhaltsgleichheit in Referenztypen speziell. Ich übertreibe die Gleichheit nicht in beiden Fällen - warum ist das Verhalten anders?Gleichheit in den Referenztypen
Siehe 2 einfache Code-Beispiele:
Beispiel 1: Gibt True zurück
class Program
{
static void Main(string[] args)
{
object o1 = "ABC";
object o2 = "ABC";
Console.WriteLine("object1 and object2: {0}", o1.Equals(o2));
}
}
Beispiel 2: Die beiden Aussagen falsch
class Program
{
static void Main(string[] args)
{
Person person1 = new Person("John");
Person person2 = new Person("John");
Console.WriteLine("person1 and person2: {0}", person1.Equals(person2));
Console.WriteLine("person1 and person2: {0}", ((object)person1).Equals((object)person2));
Console.ReadLine();
}
}
public class Person
{
private string personName;
public Person(string name)
{
this.personName = name;
}
}
diese ähnliche qustion Siehe: http://stackoverflow.com/questions/2655151/bool-as-object-vs- string-as-object-testing-equality – Oscar