如何在此方案中返回List <MyInterface>

Bil*_*tin 1 .net c# interface

首先让我说我对使用接口很新.

我正在写一个方法(GetClaimDetails),它将返回有关医疗保险索赔的信息.如果它是声明类型A,它将返回ClaimDetailA类的列表.如果声明类型B,则返回ClaimDetailB类的列表.这两个类共享公共属性,但每个类都具有唯一属性.公共属性在接口中实现.

我提取了一个名为IClaimDetail的接口,并设置它们来实现它.当我设置方法返回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
    {
    ...
    }
Run Code Online (Sandbox Code Playgroud)

当一个方法返回一个接口时,你只需返回一个实现该接口的对象.正确?我究竟做错了什么?

Dan*_*ite 7

var claimReportRows = new List<IClaimDetail>();
Run Code Online (Sandbox Code Playgroud)

改变这个.然后你就可以插入DentalClaimDetail它了.