我遇到了很多情况,我声明了一个泛型接口,后来我需要这个接口的非泛型版本,或者至少是该接口上某些方法或属性的非泛型版本。我通常会声明一个新的非泛型接口并让它继承泛型接口。我遇到的问题显示在下面的示例中:
public abstract class FormatBase { }
public interface IBook<F> where F : FormatBase
{
F GetFormat();
}
public interface IBook
{
object GetFormat();
}
public abstract class BookBase : IBook<FormatBase>, IBook
{
public abstract FormatBase GetFormat();
object IBook.GetFormat()
{
return GetFormat();
}
}
由于声明 IBook(非通用)接口的唯一方法是显式的,你们如何将其抽象化?