Я прошу прощения, если этот вопрос был рассмотрен в другом месте, но я еще не смог найти ответ на него.
В настоящее время я изучаю дженерики в C # и возился с передачей ссылки на дженерик на следующий метод, который имеет ограничение на аргумент типа
public static T GetProperty<T>(T obj) where T : class
В этом методе я хочу получить доступ к свойству Isbn
класса Book
(о котором я расскажу ниже), но не вижу, как этого добиться. Например. в теле метода GetProperty<T>(T obj)
я хочу сделать что-то вроде:
public static T GetProperty<T>(T obj) where T : class
{
// How to access the passed in generic object's properties?
// E.g. passing in an object of type Book, which has a property 'Isbn',
// how do I return obj.Isbn?
}
На данный момент метод GetProperty<T>(T obj)
находится в классе с именем Utilities
.
Я создал простой класс для тестирования:
public class Book
{
public int Isbn { get; set; }
}
Я создаю новый экземпляр Book
и задаю свойство Isbn
:
Book book = new Book() { Isnb = 1234 };
Затем я вызываю метод GetProperty()
следующим образом:
Utilities.GetProperty(book);
Спасибо за вашу помощь или любую ссылку, где я могу решить этот вопрос.