泛型 - 返回不同类型的对象

时间:2013-09-06 16:22:59

标签: c# generics .net-4.5

我在界面上定义了一堆看起来像这样的方法:

T Map<T>( SomeType someParam ); 

并实现如下:

public T Map<T>( SomeType someParam )
{
  return AutoMapper.Mapper.Map<SomeType, T>( someParam );
}

如何简化界面,以便我只有一个方法:

T Map<T>(T someParam);

public T Map<T>( T someParam )
{
  return AutoMapper.Mapper.Map<T, T>( someParam );
}

但是,当我以这种方式实现它时,我收到有关从SomeType和另一种类型转换的转换错误。这可能与泛型有关,怎么做?

1 个答案:

答案 0 :(得分:6)

只需提供更通用的类型参数:

public T1 Map<T1,T2>( T2 someParam){
  return AutoMapper.Mapper.Map<T1, T2>( someParam);
}