ジェネリック インターフェイスを宣言した後で、このインターフェイスの非ジェネリック バージョン、または少なくともそのインターフェイスの一部のメソッドまたはプロパティの非ジェネリック バージョンが必要になる状況によく遭遇します。通常、新しい非ジェネリック インターフェイスを宣言し、ジェネリック インターフェイスを継承させます。私が直面している問題は、以下の例に示されています。
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 (非ジェネリック) インターフェイスを宣言する唯一の方法は明示的であるため、どうやって抽象化しますか?