.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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д