この例には 3 つの単純なクラスがあります。
public class User
{
public string FirstName { get; set; }
}
public class E : User
{
public string MiddleInitial { get; set; }
}
public class F : User
{
public string LastName { get; set; }
}
特定の型を取るためにオーバーロードしている単純な Print メソッドがいくつかあります。応答の書き込みを気にしないでください。これは、ベースにないそのタイプのプロパティを使用するという目標を表示するためだけです。
public void Print(E e)
{
Response.Write(e.FirstName);
}
public void Print(F f)
{
Response.Write(f.LastName);
}
型をキャストせずにこれらの命令を機能させる方法に興味がありますか? 合計で、私は4つの別々User
のを持っています。それぞれが同じプロセスを経ます。コードを 4 回ではなく 1 回で取得したいです。LastName
以下のこのコードは、User
オブジェクトにないためコンパイルされません。
User u = UserFactory.Get("f");
Print(u);