不幸的是,因为
User
和
UserModel
另一方面,让我们这么说
用户
和
用户模型
IUser
接口。然后你可以有一个这样的界面:
interface IPresentationForms<T>
{
T ToPresentationForm();
}
你可以定义
用户
这样地:
class User: IUser, IPresentationForms<IUser>
{
public IUser ToPresentationForm()
{
return new UserModel(...);
}
.... // implement IUser
}
可以让你定义
ToPresentationForm
像这样的:
public static List<T> ToPresentationForm<T>(this IEnumerable<T> pTemplate)
where T : IPresentationForms<T>
{
return pTemplate.Select(x => x.ToPresentationForm()).ToList();
}
为了避免一些额外的方法,这需要做很多工作。