У меня есть класс Patient:
class Patient {
public string First_Name { get; set; }
public string Last_Name { get; set; }
public DateTime Date_of_Birth { get; set; }
}
У меня также есть интерфейс:
interface IPerson {
string First_Name { get; }
string Last_Name { get; }
}
в этом консольном приложении, я хотел бы, чтобы метод Display_Person работал.Он компилируется, но выдает ошибку времени выполнения, потому что Patient не реализует IPerson.
class Program {
static void Main(string[] args) {
Patient p = new Patient {
First_Name = "Charles", Last_Name = "Lambert",
Date_of_Birth = new DateTime(1976,5,12),
};
Display_Person(p);
}
static void Display_Person(dynamic person) {
IPerson p = person;
Console.WriteLine("{0}, {1}", p.Last_Name, p.First_Name);
}
}
Какие изменения в коде, без того, чтобы Patient реализовал интерфейс IPerson, можно сделать, чтобы метод Display_Person работал?Я бы предпочел решение, которое можно использовать повторно.
Обновление: я хочу, чтобы это работало, чтобы я мог получить intellisense.Пожалуйста, посмотрите мимо тривиальности этого примера.Это коротко и точно, чтобы объяснить мою проблему.Если бы это была заявка на получение кредита 1003 (когда напечатан размер книги), я бы не хотел применять более 20 интерфейсов к своему классу, чтобы я мог сгруппировать связанные данные для расчетов.Я также не хотел бы каждый раз печатать все эти свойства.Отсутствие intellisense отвлекло меня от использования динамических языков в прошлом.(Я не ленивый, я эффективный!)