假設我有這兩個對象:關於仿製藥,接口和基類需要幫助
public class Object1
{
string prop1;
string prop2;
}
public class Object2
{
string prop1;
int prop2;
int prop3;
}
及以下類&方法:
public class Object1Service
{
public Object1 GetObject(Object1 o) { return o; }
public void SaveProperty2(Object1 o, string s) { o.prop2 = s; }
}
public class Object2Service
{
public Object2 GetObject(Object2 o) { return o; }
public void SaveProperty2(Object2 o, int i) { o.prop2 = i; }
}
我如何把它變成一個通用的?
我最好需要一些東西,以便服務實現一個接口,並儘可能調用一些通用基類。
如果兩個對象共享一個共同的父類,它會有所幫助嗎?如果是這樣,他們將如何構建?
附錄:
這是我的真正的問題的回報。
public T GetObjectByKey<T>(string key)
{
using (DBEntities db = new DBEntities())
{
try
{
T returnedEntity = default(T);
switch (EntityDictionary[typeof (T)])
// I have a dictionary setup like this dictionary<type, string>
{
case "Object1" :
returnedEntity = (from r in db.ObjectONESets
where r.prop1 == key
select new T
{
prop1 = r.prop1,
prop2 = r.prop2
}).FirstOrDefault();
break ;
case "Object2" :
returnedEntity = (from r in db.ObjectTWOSets
where r.prop1 == key
select new T
{
prop1 = r.prop1,
prop2 = r.prop2,
prop3 = r.prop3
}).FirstOrDefault();
break ;
}
return returnedEntity;
}
catch (NullReferenceException)
{
return default(T);
}
}
}
沒有把我所有的對象屬性的基本對象,它具有無法知道prop1-3的方式T.
的財產,如果我真的把所有的屬性(普通或不)在基對象,如果我需要Object1,它會附帶一個我不需要的prop3。
我不確定在這一點上我是否合理,或者我所要求的甚至可以與泛型相匹配。
你是什麼意思「變成一個通用的」是什麼意思?你的課程是什麼? – Hali 2012-04-24 16:21:34
你剛剛說,「接口...通用基類」?我頭疼。 ;) – 2012-04-24 16:22:43
是的,它也讓我的頭也受到傷害。我希望它看起來像'公共類ObjectService:IObjectService'和第一個方法內部看起來類似於'公共T GetObject(T o){返回base.GetObject(o); }' – kei 2012-04-24 16:26:33