Преобразование типов, являющихся наследниками Attribute - C#
Формулировка задачи:
Здравствуйте. Столкнулся с такой проблемой. Читаю Шилдта и встретился мне такой пример:
В классе Example вызывается метод GetCustomAttribute, который возвращает объект типа Attribute. Но при этом данный объект преобразовывается в тип RemarkAttribute, являющийся производным для класса Attribute. Т.е. получается производный_класс = (производный_класс) базовый_класс. Как такое возможно? Поясните, пожалуйста.
using System; [AttributeUsage(AttributeTargets.All)] public class RemarkAttribute: Attribute { public string Remark { get; private set; } public RemarkAttribute(string str) { Remark = str; } } [RemarkAttribute("Ремарка от атрибута")] class MyClass { } class Example { static void Main() { Type objForTypeMyClass = typeof(MyClass); Type objForTypeOfAttribute = typeof(RemarkAttribute); RemarkAttribute re = (RemarkAttribute) Attribute.GetCustomAttribute(objForTypeMyClass, objForTypeOfAttribute); // в этом месте непонятно } }
Решение задачи: «Преобразование типов, являющихся наследниками Attribute»
textual
Листинг программы
namespace Program { class A { } class B:A { } class Program { static A Dummy(B obj) { return (A)obj; } static void Main() { A objA = new A(); B objB = (B)Dummy(new B()); Console.WriteLine(objB.GetType()); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д