C# などのオブジェクト指向言語では、同じ値を持つ同じ型のオブジェクトが CLR によってどのように区別されるのでしょうか?
例えば:
class Foo
{
public string name {get; set;}
public foo(string name)
{
this.Name = name;
}
}
class Bar
{
public void Main()
{
Foo foo1 = new Foo("Jim"); //This foo is named "Jim."
Foo foo2 = new Foo("Jim"); //So is this one.
bool areEqual = (foo1 == foo2); //How is the CLR determining equivalence?
}
}