我有一个方法
public Dto Convert<T>(T source)
{
//todo here?
}
我需要根据T调用以下方法,我是否必须执行TypeOf和switch语句(试图避免这种情况)?
public Dto Convert(Contact source) {}
public Dto Convert(Org source) {}
etc...
答案 0 :(得分:4)
您可以使用dynamic
:
public Dto Convert<T>(T source)
{
var resut = (Dto)Convert((dynamic)source);
}
它将根据实际的source
类型在运行时执行方法选择。当没有合适的方法可用时,也会失败。
但是你的设计似乎总体上有问题。您确定自己并未尝试解决XY problem吗?