私は基本的に同じオブジェクトを異なる2つの同様のメソッドを持っています。 可能であれば、ジェネリックメソッドを作成する最良の方法は何ですか?類似した2つの異なるメソッドから汎用メソッドを作成するにはどうすればよいですか?
二つのオブジェクト:
public class StoreObject {
int Key;
string Address;
string Country;
int Latitude;
int Longitude;
}
public class ProjectObject {
int ProjectKey;
string Address;
string Description;
}
私は潜在的に汎用的にしたい二つの方法:
public StoreObject GetStoreByKey(int key)
{
using (DBEntities dbe = new DBEntities())
{
StoreObject so = new StoreObject();
var storeObject = (from s in dbe.StoreTables
where s.Key == key
select s).First();
so.Key = storeObject.key;
so.Address = storeObject.address;
so.Country = storeObject.country;
so.Latitude = storeObject.latitude;
so.Longitude = storeObject.longitude;
return so;
}
}
public ProjectObject GetProjectByKey(int projectKey)
{
using (DBEntities dbe = new DBEntities())
{
ProjectObject po = new ProjectObject();
var projectObject = (from p in dbe.ProjectTables
where p.ProjectKey == projectKey
select p).First();
po.Key = projectObject.p_key;
po.Address = projectObject.p_address;
po.Description = projectObject.p_description;
return po;
}
}
私はそれを注意する必要があります。
- 私はを制御することはできませんテーブルフィールドの名前付け方法(例:p_description)。
- DB内のStoreTableは、電話、郵便番号などの他のプロパティを持つ場合がありますが、コードに表示されている内容を表示することにのみ関心があります。
- ProjectTableでも同じです。
。ほとんどすべての行が異なります。 where節としてExpressionを渡すこともできますが、それは事態をより複雑にするだけです。それらのメソッドのそれぞれは、扱うオブジェクトをどのように扱うかを正確に認識しています。私はそれが得られるほど多く抽象化されていると思う。 –
私は類似点があると主張する必要があります。私はそれがすでに抽象化されていることに同意しますが、他の人々がそれをもっともっとそうする考えを持っているかもしれないかと尋ねてみます。 – kei