hérité Tenir compte de ces classes:Obtenez hashcode de classe parente de la classe
public class BaseClass {
public int SomeInt { get; set; }
public bool SomeBool { get; set; }
public BaseClass(int i, bool b) {
SomeInt = i;
SomeBool = b;
}
}
public class InheritedClass : BaseClass {
public List<Int32> SomeInts { get; set; }
public InheritedClass(int i, bool b, List<Int32> ints): base(i, b) {
SomeInts = ints;
}
public InheritedClass(BaseClass b, List<Int32> ints) : base(b.SomeInt, b.SomeBool) {
SomeInts = ints;
}
}
Et j'ai une instance de InheritedClass
, je veux obtenir la valeur de HashCode de celui-ci si elle était un BaseClass
. Je l'ai essayé le jeter:
BaseClass x = new BaseClass(10, true);
Console.WriteLine("HashCode x: {0}", x.GetHashCode());
InheritedClass iX = new InheritedClass(x, new List<int> { 1, 2, 3 });
Console.WriteLine("HashCode iX: {0}", iX.GetHashCode());
BaseClass bX = (BaseClass)iX;
//I've also tried:
//BaseClass bX = ix as BaseClass;
Console.WriteLine("Base HashCode bX: {0}", bX.GetHashCode());
Mais la WriteLine
finale renvoie le hashcode comme si elle était un InhertiedClass
. Je ne peux pas dépasser le GetHashCode
du InheritedClass
, et enregistrer la construction d'un nouveau BaseClass
à partir des propriétés de l'objet, y at-il de toute façon pour obtenir le HashCode dont j'ai besoin?