2013-09-06 5 views
2

У меня есть куча методов, определенных на моем интерфейсе, который выглядит следующим образом:Дженерики - вернуть другой тип объекта

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 и другого типа. Как это можно сделать с дженериками, как?

ответ

6

Просто обеспечивают более общий тип параметра:

public T1 Map<T1,T2>(T2 someParam){ 
    return AutoMapper.Mapper.Map<T1, T2>(someParam); 
} 
Смежные вопросы