首先让我说我对使用接口(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/