把约束变成约束

本文关键字:约束 | 更新日期: 2023-09-27 17:50:58

我有这样一个场景:

public abstract class UblParser<TDto, TUbl> where TUbl : UblBaseDocumentType
                                            where TDto: DtoB
{
    public abstract TUbl ParseFrom(TDto dto);
    public abstract TDto ParseTo(TUbl document);
}

如何在约束内部声明一个类?

public class UblConverter<TParser> where TParser : UblParser<TDto, TUbl>
                                   where TUbl : UblBaseDocumentType
                                   where TDto : DtoB
{
    ...
}

把约束变成约束

你必须在你的类定义中包含所有的泛型类型。

public class UblConverter<TParser, TDto, TUbl> where TParser : UblParser<TDto, TUbl> 
                                               where TUbl : UblBaseDocumentType 
                                               where TDto : DtoB 
{
    //...
}