using System;
// Define a reference type that does not override Equals.
public class Person
{
private string personName;
public Person( string name)
{
this.personName = name;
}
public override string ToString( )
{
return this.personName ;
}
}
public class Example
{
public static void Main( )
{
Person person1a = new Person( "John" ) ;
Person person1b = person1a;
Person person2 = new Person( person1a.ToString ( ) ) ;
string sr1= "j" ;
object sr= sr1;
// string str=sr;
Console.WriteLine ( sr) ;
Person person1c = new Person( "John" ) ;
Console.WriteLine ( "Calling Equals:" ) ;
Console.WriteLine ( "person1a and person1b: {0}" , person1a.Equals ( person1b) ) ;
Console.WriteLine ( "person1a and person2: {0}" , person1a.Equals ( person1c) ) ;
Console.WriteLine ( "\n Casting to an Object and calling Equals:" ) ;
Console.WriteLine ( "person1a and person1b: {0}" , ( ( object) person1a) .Equals ( ( object) person1b) ) ;
Console.WriteLine ( "person1a and person2: {0}" , ( ( object) person1a) .Equals ( ( object) person2) ) ;
}
}
dXNpbmcgU3lzdGVtOwoKCi8vIERlZmluZSBhIHJlZmVyZW5jZSB0eXBlIHRoYXQgZG9lcyBub3Qgb3ZlcnJpZGUgRXF1YWxzLgpwdWJsaWMgY2xhc3MgUGVyc29uCnsKICAgcHJpdmF0ZSBzdHJpbmcgcGVyc29uTmFtZTsKCiAgIHB1YmxpYyBQZXJzb24oc3RyaW5nIG5hbWUpCiAgIHsKICAgICAgdGhpcy5wZXJzb25OYW1lID0gbmFtZTsKICAgfQoKICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIFRvU3RyaW5nKCkKICB7CiAgIHJldHVybiB0aGlzLnBlcnNvbk5hbWU7CiAgfQp9CgpwdWJsaWMgY2xhc3MgRXhhbXBsZQp7CiAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgewogICAgICBQZXJzb24gcGVyc29uMWEgPSBuZXcgUGVyc29uKCJKb2huIik7CiAgICAgIFBlcnNvbiBwZXJzb24xYiA9IHBlcnNvbjFhOwogICAgICBQZXJzb24gcGVyc29uMiA9IG5ldyBQZXJzb24ocGVyc29uMWEuVG9TdHJpbmcoKSk7CiAgICAgIHN0cmluZyBzcjE9ImoiOwogICAgICBvYmplY3Qgc3I9c3IxOwogICAgLy8gc3RyaW5nIHN0cj1zcjsKICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3IpOwogICAgICAKICAgICAgUGVyc29uIHBlcnNvbjFjID0gbmV3IFBlcnNvbigiSm9obiIpOwoKICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkNhbGxpbmcgRXF1YWxzOiIpOyAKICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoInBlcnNvbjFhIGFuZCBwZXJzb24xYjogezB9IiwgcGVyc29uMWEuRXF1YWxzKHBlcnNvbjFiKSk7ICAgICAgICAgICAgICAgCiAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJwZXJzb24xYSBhbmQgcGVyc29uMjogezB9IiwgcGVyc29uMWEuRXF1YWxzKHBlcnNvbjFjKSk7ICAKCiAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJcbkNhc3RpbmcgdG8gYW4gT2JqZWN0IGFuZCBjYWxsaW5nIEVxdWFsczoiKTsKICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoInBlcnNvbjFhIGFuZCBwZXJzb24xYjogezB9IiwgKChvYmplY3QpIHBlcnNvbjFhKS5FcXVhbHMoKG9iamVjdCkgcGVyc29uMWIpKTsKICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoInBlcnNvbjFhIGFuZCBwZXJzb24yOiB7MH0iLCAoKG9iamVjdCkgcGVyc29uMWEpLkVxdWFscygob2JqZWN0KSBwZXJzb24yKSk7IAogICB9Cn0=