これは多くの場合ジェネリックス101になりますが、以下はサンプルコードなので、理解を深めることができます。
public interface IRecordedItemsProcessor<T>
{
ObservableCollection<RecordedItem> Load(string name);
void Save();
RecordedItem Parse(T itemToParse);
}
public class FileLoadingProcessor : IRecordedItemsProcessor<string>
{
public ObservableCollection<RecordedItem> Load(string name)
{
}
public void Save()
{
}
public RecordedItem Parse(string itemToParse)
{
}
}
public class MyClass
{
public MyClass(IRecordedItemsProcessor<T> processor)
{
}
}
問題はMyClass
、依存関係が必要ですが、IRecordedItemsProcessor<T>
それが何であるかを知らないため、コンパイルされないということT
です。これはどのように解決できますか?MyClassを実装させるのは奇妙に思えます。必要なのは、Load/Saveを呼び出すことだけです。
ありがとう