小编Sta*_*ore的帖子

使用泛型的新手多态性问题

我有以下方法接收详细信息对象,验证它,将其转换为请求并将其排队.除了我遇到麻烦的验证请求之外,一切都很好.基本上,每个不同的细节对象都有不同的验证逻辑.我从通用约束中知道,细节对象必须具有BaseDetails的基类,并且从实际的泛型参数我知道确切的派生类型,但不知道如何使用它们来编写我的验证器类,以便它处理所有类型的细节:

private void Enqueue<TDetails, TRequest>(TDetails details)  
   where TDetails: BaseDetails where TRequest: BaseRequest
{
  bool isValid = _validator.Validate(details);

  if (isValid)
  {
    TRequest request = ObjectMapper
      .CreateMappedMessage<TDetails, TRequest>(details);

    _queue.Enqueue(request);
  }
}
Run Code Online (Sandbox Code Playgroud)

c# oop generics polymorphism

5
推荐指数
1
解决办法
247
查看次数

标签 统计

c# ×1

generics ×1

oop ×1

polymorphism ×1