using System;
public class Entity {
public int EntityID { get; set; }
public string EntityName { get; set; }
public override int GetHashCode() {
unchecked {
int hash = 15485863;
int multiplier = 1299709;
hash = hash * multiplier + EntityID.GetHashCode();
hash = hash * multiplier + (EntityName != null ? EntityName.GetHashCode() : 0);
return hash;
}
}
}
public class Test
{
public static void Main()
{
var hash1 = new Entity { EntityID = 1337, EntityName = "" }.GetHashCode();
var hash2 = new Entity { EntityID = 1337, EntityName = null }.GetHashCode();
Console.WriteLine(hash1 == hash2);
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIEVudGl0eSB7CglwdWJsaWMgaW50IEVudGl0eUlEIHsgZ2V0OyBzZXQ7IH0KCXB1YmxpYyBzdHJpbmcgRW50aXR5TmFtZSB7IGdldDsgc2V0OyB9CgkKCXB1YmxpYyBvdmVycmlkZSBpbnQgR2V0SGFzaENvZGUoKSB7CgkJdW5jaGVja2VkIHsKCQkJaW50IGhhc2ggPSAxNTQ4NTg2MzsKCQkJaW50IG11bHRpcGxpZXIgPSAxMjk5NzA5OwoJCQkKCQkJaGFzaCA9IGhhc2ggKiBtdWx0aXBsaWVyICsgRW50aXR5SUQuR2V0SGFzaENvZGUoKTsKCQkJaGFzaCA9IGhhc2ggKiBtdWx0aXBsaWVyICsgKEVudGl0eU5hbWUgIT0gbnVsbCA/IEVudGl0eU5hbWUuR2V0SGFzaENvZGUoKSA6IDApOwoJCQkKCQkJcmV0dXJuIGhhc2g7CgkJfQoJfQp9CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIGhhc2gxID0gbmV3IEVudGl0eSB7IEVudGl0eUlEID0gMTMzNywgRW50aXR5TmFtZSA9ICIiIH0uR2V0SGFzaENvZGUoKTsKCQl2YXIgaGFzaDIgPSBuZXcgRW50aXR5IHsgRW50aXR5SUQgPSAxMzM3LCBFbnRpdHlOYW1lID0gbnVsbCB9LkdldEhhc2hDb2RlKCk7CgkJCgkJQ29uc29sZS5Xcml0ZUxpbmUoaGFzaDEgPT0gaGFzaDIpOwoJfQp9