首先让我说我对使用接口很新.
我正在写一个方法(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)
当一个方法返回一个接口时,你只需返回一个实现该接口的对象.正确?我究竟做错了什么?
var claimReportRows = new List<IClaimDetail>();
Run Code Online (Sandbox Code Playgroud)
改变这个.然后你就可以插入DentalClaimDetail它了.