このインターフェースの実装は簡単です:
public class MyInterfaceImpl : IMyInterface
{
public List<IMyInterface> GetAll(string whatever)
{
return new List<IMyInterface> { new MyInterfaceImpl(), this };
}
}
メソッドのシグネチャはまったく同じである必要があることに注意してください。つまり、戻り値の型は である必要がList<IMyInterface>
ありList<MyInterfaceImpl>
ます。
リスト内の型をインターフェイスを実装するクラスと同じ型にしたい場合は、ジェネリックを使用する必要があります。
public interface IMyInterface<T> where T : IMyInterface<T>
{
List<T> GetAll(string whatever)
}
public class MyInterfaceImpl : IMyInterface<MyInterfaceImpl>
{
public List<MyInterfaceImpl> GetAll(string whatever)
{
return new List<MyInterfaceImpl > { new MyInterfaceImpl(), this };
}
}