0
現在、別のコレクションにインターフェイスのコレクションを追加しようとしています。問題は、拡張インターフェイスのみで、親は不要です。C#リストに拡張インターフェイスを追加する
は私が詳しく説明してみましょう:
interface IScanner
{
void scan();
}
interface IPhotocopier : IScanner
{
void Copy();
}
public class PrintingBusiness
{
List<IPhotocopier> Photocopiers { get; set; }
}
public class ScannerBusiness
{
List<IScanner> Scanners { get; set; }
}
public class Program
{
static void Main(string[] args)
{
PrintingBusiness printerBusiness = new PrintingBusiness();
printerBusiness.Photocopiers = new List<IPhotocopier>();
printerBusiness.Photocopiers.Add(new HPPrinter());
printerBusiness.Photocopiers.Add(new CanonPrinter())
ScannerBusiness scannerBusiness = new ScannerBusiness();
scannerBusiness.Scanners = new List<IScanner>();
scannerBusiness.Scanners.Add(printerBusiness.Photocopiers); // Here i want to retreive all the IScanners from my Photocopiers collection, but i get an ArgumentError: Cannot Convert from List<IPhotocopier> to List<IScanner>.
}
}
私は私の複写機コレクションからIScannerインタフェースのコレクションにアクセスしたい - 私は単に私のスキャナコレクションに複写機のコレクションを追加することにより、直接それを行うことができると思った - しかし、私に各コピー機で繰り返し、IScannerにキャストして、それらをスキャナコレクションに追加する必要がありますか?
パーフェクト - ありがとう! :-) – Mathias