我有一个病人类:
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 方法工作?我更喜欢可重复使用的解决方案。
更新:我希望它能够工作,这样我就可以获得智能感知。请看过去这个例子的琐碎性。它简短而准确地解释了我的问题。如果这是 1003 个贷款申请(打印时是一本书的大小),我不想将 20 多个接口应用到我的班级,以便我可以将相关数据分组以进行计算。我也不希望每次都输入所有这些属性。过去,智能感知的缺乏使我不再使用动态语言。(我不懒,我很有效率!)