Преобразование типов, являющихся наследниками Attribute - C#

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

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

Здравствуйте. Столкнулся с такой проблемой. Читаю Шилдта и встретился мне такой пример:
Листинг программы
  1. using System;
  2.  
  3. [AttributeUsage(AttributeTargets.All)]
  4. public class RemarkAttribute: Attribute
  5. {
  6. public string Remark { get; private set; }
  7. public RemarkAttribute(string str)
  8. {
  9. Remark = str;
  10. }
  11. }
  12.  
  13. [RemarkAttribute("Ремарка от атрибута")]
  14. class MyClass
  15. {
  16. }
  17.  
  18. class Example
  19. {
  20. static void Main()
  21. {
  22. Type objForTypeMyClass = typeof(MyClass);
  23. Type objForTypeOfAttribute = typeof(RemarkAttribute);
  24. RemarkAttribute re = (RemarkAttribute) Attribute.GetCustomAttribute(objForTypeMyClass, objForTypeOfAttribute); // в этом месте непонятно
  25.  
  26. }
  27. }
В классе Example вызывается метод GetCustomAttribute, который возвращает объект типа Attribute. Но при этом данный объект преобразовывается в тип RemarkAttribute, являющийся производным для класса Attribute. Т.е. получается производный_класс = (производный_класс) базовый_класс. Как такое возможно? Поясните, пожалуйста.

Решение задачи: «Преобразование типов, являющихся наследниками Attribute»

textual
Листинг программы
  1. namespace Program
  2. {
  3.     class A
  4.     { }
  5.  
  6.     class B:A
  7.     { }
  8.    
  9.     class Program
  10.     {
  11.         static A Dummy(B obj) {
  12.             return (A)obj;
  13.         }
  14.        
  15.         static void Main() {
  16.             A objA = new A();
  17.             B objB = (B)Dummy(new B());
  18.             Console.WriteLine(objB.GetType());
  19.         }
  20.     }
  21. }

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


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

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

13   голосов , оценка 4.077 из 5

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

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

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