.NET 4.x Доступ к полям дочернего класса из родительского - C#

Узнай цену своей работы

Формулировка задачи:

Вопрос это нормально что this.GetType() Возвращает тип дочернего класса а не родительского? А следовательно я могу перебрать в родительском классе поля дочерних классов
Листинг программы
  1. public class MyClass1
  2. {
  3. public String d { get; set; }
  4. public void GetProperties1()
  5. {
  6. foreach (var prop in GetType().GetProperties())
  7. {
  8. Console.WriteLine(prop.Name);
  9. }
  10. }
  11. }
  12. public class MyClass2 : MyClass1
  13. {
  14. public String d2 { get; set; }
  15. }

Решение задачи: «.NET 4.x Доступ к полям дочернего класса из родительского»

textual
Листинг программы
  1.  public class VersionObject
  2.         {
  3.             public String d { get; set; }
  4.  
  5.             public Int32 GetHashCode1()
  6.             {
  7.                 unchecked
  8.                 {
  9.                     Int32 version = 0;
  10.                     var props = GetType().GetProperties();
  11.                     foreach (var prop in props)
  12.                     {
  13.                         version += prop.GetValue(this).GetHashCode();
  14.                     }
  15.                     return version;
  16.                 }
  17.             }
  18.         }
  19.         public class MyClass2 : VersionObject
  20.         {
  21.             public String d2 { get; set; }
  22.         }
  23.  
  24.         static void Main(string[] args)
  25.         {
  26.             var d = new[]
  27.             {
  28.                 new MyClass2{d="2", d2 = "2"},
  29.                 new MyClass2{d="1", d2 = "2"},
  30.                 new MyClass2{d="2", d2 = "2"},
  31.                 new MyClass2{d="1", d2 = "2"},
  32.             };
  33.             foreach (var obj in d)
  34.             {
  35.                 Console.WriteLine("GetHashCode  = {0}", obj.GetHashCode());
  36.                 Console.WriteLine("GetHashCode1 = {0}\r\n", obj.GetHashCode1());
  37.             }
  38.             Console.ReadLine();
  39.         }
  40.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы