尝试在下面实现重用。
if(update)
var updateType = (A)request;
updateType.Entity.NameFlag = nameValue;
updateType.Entity.PhoneFlag = phoneValue
else
var addType = (B) request;
addType.Entity.NameFlag = nameValue;
addType.Entity.PhoneFlag = phoneValue
正如您所看到的,唯一的区别是对象(A或B)。
如何使用T模板实现重用?
答案 0 :(得分:1)
public void SomeMethod<A,B>() where A : BaseTypeA where B : BaseTypeB
{
if(update)
{
var updateType = (A)request;
updateType.Entity.NameFlag = nameValue;
updateType.Entity.PhoneFlag = phoneValue;
}
else
{
var addType = (B) request;
addType.Entity.NameFlag = nameValue;
addType.Entity.PhoneFlag = phoneValue;
}
}
试试上面的
答案 1 :(得分:1)
public void DoStuff<T>(T item)
where T : BaseClasseOrInterfaceOfAandB
{
item.Entity.NameFlag = nameValue;
item.Entity.PhoneFlag = phoneValue
}
if(update)
{
DoStuff((A)request);
}
else
{
DoStuff((B)request);
}