Sono un po 'confuso sull'uguaglianza dei contenuti nei tipi di riferimento in particolare. In entrambi i casi, io non prevale sull'uguaglianza, quindi perché il comportamento è diverso.Uguaglianza nei tipi di riferimento
Vedi 2 semplici esempi di codice:
Esempio 1: restituisce True
class Program
{
static void Main(string[] args)
{
object o1 = "ABC";
object o2 = "ABC";
Console.WriteLine("object1 and object2: {0}", o1.Equals(o2));
}
}
Esempio 2: Entrambe le affermazioni return false
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;
}
}
Vai a questa qustion simili: http://stackoverflow.com/questions/2655151/bool-as-object-vs- string-as-object-testing-ugality – Oscar