.NET 4.x Доступ к полям дочернего класса из родительского - C#
Формулировка задачи:
Вопрос это нормально что this.GetType()
Возвращает тип дочернего класса а не родительского?
А следовательно я могу перебрать в родительском классе поля дочерних классов
public class MyClass1
{
public String d { get; set; }
public void GetProperties1()
{
foreach (var prop in GetType().GetProperties())
{
Console.WriteLine(prop.Name);
}
}
}
public class MyClass2 : MyClass1
{
public String d2 { get; set; }
}Решение задачи: «.NET 4.x Доступ к полям дочернего класса из родительского»
textual
Листинг программы
public class VersionObject
{
public String d { get; set; }
public Int32 GetHashCode1()
{
unchecked
{
Int32 version = 0;
var props = GetType().GetProperties();
foreach (var prop in props)
{
version += prop.GetValue(this).GetHashCode();
}
return version;
}
}
}
public class MyClass2 : VersionObject
{
public String d2 { get; set; }
}
static void Main(string[] args)
{
var d = new[]
{
new MyClass2{d="2", d2 = "2"},
new MyClass2{d="1", d2 = "2"},
new MyClass2{d="2", d2 = "2"},
new MyClass2{d="1", d2 = "2"},
};
foreach (var obj in d)
{
Console.WriteLine("GetHashCode = {0}", obj.GetHashCode());
Console.WriteLine("GetHashCode1 = {0}\r\n", obj.GetHashCode1());
}
Console.ReadLine();
}
}