私はインターフェースを使うのは初めてです。このシナリオでリスト<MyInterface>を返すにはどうすればいいですか
私は医療保険請求に関する情報を返すメソッド(GetClaimDetails)を書いています。クレームタイプAの場合、ClaimDetailAクラスのリストが返されます。クレームタイプBの場合は、ClaimDetailBクラスのリストを返します。これらのクラスはどちらも共通のプロパティを共有しますが、それぞれ固有のプロパティを持ちます。共通プロパティはインタフェースで実装されます。
IClaimDetailという名前のインターフェイスを抽出し、両方を実装するように設定しました。私はIClaimDetailを返し、それがIClaimsDetailを実装するオブジェクトのインスタンスを返すようにする方法を設定した場合、私は、コンパイラのメッセージに
を得るにSystem.Collections「に 『System.Collections.Generic.List DentalClaimDetail』暗黙的にタイプを変換できません」 .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
{
...
}
メソッドがインターフェイスを返すときは、インターフェイスを実装するオブジェクトを返すだけです。正しい?私は間違って何をしていますか?
Daniel Whiteの答えを参照してください。 .NET 4ではこれをサポートする必要があります(タイプ共分散) – Jimmy