私は患者クラスを持っています:
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以上のインターフェースを適用したくありません。また、これらすべてのプロパティを毎回入力する必要はありません。インテリセンスの欠如により、過去に動的言語を使用することから私を遠ざけました。(私は怠惰ではありません私は効率的です!)