Я видел примеры написания расширений классов для дженериков несколькими способами. Я собираюсь использовать AutoMapper в качестве примера.
1)
public static class Extensions<Src, Tgt>
{
public static Tgt TransferData(this Src source)
{
AutoMapper.Mapper.CreateMap<Src, Tgt>();
return AutoMapper.Mapper.Map<Src, Tgt>(source);
}
}
2)
public static class Extensions2
{
public static Tgt TransferData<Src, Tgt>(this Src source)
{
AutoMapper.Mapper.CreateMap<Src, Tgt>();
return AutoMapper.Mapper.Map<Src, Tgt>(source);
}
}
Что лучше? Зачем? Первый даже правильный?