.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();
        }
    }

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


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

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

10   голосов , оценка 4.3 из 5
Похожие ответы