請幫助我使用泛型
我正在嘗試使用方法創建介面,但我不明白如何設定介面的輸入和輸出引數
我有一個方法類
public TeachersDto[] MapToDto(Teachers[] entities, Dictionary<string, ParameterData> data)
public Teachers[] MapDto(TeachersDto dto, Dictionary<string, ParameterData> Data)
我試試
public interface ITeachersMapper<RInput, Dictionary<string, RInput2>, TOutput>
{
TDto[] MapToDto(TEntity[] entities, Dictionary<string, TInput> data);
TEntity[] MapDto(TDto[] dtos, Dictionary<string, TInput> data);
}
如何撰寫介面的輸入和輸出泛型引數?
uj5u.com熱心網友回復:
目前尚不清楚您是如何嘗試使用此介面的,因為您的介面與您在問題中提供的實作不匹配,但我認為這就是您要尋找的。
請記住,泛型引數可以隨心所欲地呼叫,但這T只是約定俗成的,因此請為泛型引數命名以使其清楚地表示它們所代表的內容。
此外,您不能將 Dictionary 等特定型別與泛型型別混合使用。您可以使用 where 使用具有型別約束的泛型型別,但很可能您只需要一個泛型型別來定義ParameterData并且不需要泛型規范中的任何 Dictionary 內容。
我將您的課程更改為公正Teacher,TeacherDto因為課程通常采用單數形式。
public interface IEntityMapper<TEntity, TParameterData, TDto>
{
TDto[] MapToDto(TEntity[] entities, Dictionary<string, TParameterData> data);
TEntity[] MapDto(TDto[] dtos, Dictionary<string, TParameterData> data);
}
public class TeacherMapper : ITeacherMapper<Teacher, ParameterData, TeacherDto>
{
public TeacherDto[] MapToDto(Teacher[] entities, Dictionary<string, ParameterData> data)
{
//..mapping to DTO here
}
public Teacher[] MapDto(TeacherDto[] dto, Dictionary<string, ParameterData> Data)
{
//..mapping to domain here
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452589.html
上一篇:使用C#API在SendGrid中取消BatchId
下一篇:使用列中的最后一個值而不是SUM
