c# - 在这种情况下如何返回 List<MyInterface>

标签 c# .net interface

首先让我说我对使用接口(interface)还很陌生。

我正在编写一个方法 (GetClaimDetails),它将返回有关医疗保险 claim 的信息。如果是声明类型 A,它将返回 ClaimDetailA 类的列表。如果声明类型 B,则返回 ClaimDetailB 类的列表。这两个类共享共同的属性,但每个都有独特的属性。通用属性在接口(interface)中实现。

我提取了一个名为 IClaimDetail 的接口(interface)并将两者都设置为实现它。当我设置返回 IClaimDetail 的方法并让它返回一个实现 IClaimsDetail 的对象的实例时,我得到了编译器消息

“无法将类型‘System.Collections.Generic.List DentalClaimDetail’隐式转换为‘System.Collections.Generic.List IClaimDetail’

  private static List<IClaimDetail> GetClaimDetailsB(string claimNumber, string connectionStringName)
        {

          var claimReportRows = new List<DentalClaimDetail>();
         ..removed for brevity
      return claimReportRows;
    } 



   public class DentalClaimDetail : IClaimDetail
    {
    ...
    }

当方法返回一个接口(interface)时,您只需返回一个实现该接口(interface)的对象。正确的?我做错了什么?

最佳答案

var claimReportRows = new List<IClaimDetail>();

只是改变这个。然后您仍然可以将 DentalClaimDetail 插入其中。

关于c# - 在这种情况下如何返回 List<MyInterface>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210122/

相关文章:

typescript - 如何在 typescript 中使属性可选但不是未定义的

c# - 为自定义日历 WPF 创建事件/约会

c# - 创建任务时List Index Out of Range异常

c# - 在 MDI 容器中将每个子窗体作为单独的线程运行

c# - RegisterPointerInputTarget() 函数给出 false

对错误命名空间的 .net xml 模式验证

typescript - 为什么 typescript 中的 'readonly' 属性不起作用?

c# - Parallel.ForEach 与 ListView

.net - 如何在新行上使用关闭节点和标签来格式化 XML?

java - 在Java中,有实现接口(interface)的捷径吗?