Извиняюсь за заголовок - я действительно не могу придумать очень хороший способ описать мое требование.
Я хочу иметь возможность определить общий интерфейс (или класс, это не имеет значения)при этом параметр Type предоставляет другой тип, к которому можно получить доступ из класса.Надеемся, что этот фрагмент кода объяснит.
interface IFoo
{
TOtherType DependentType { get; }
}
interface IMyGeneric<TBar> where TBar : IFoo
{
TBar ReturnSomeTBar();
TBar.DependentType ReturnSomeTypeOnTBar();
}
Так что в этом примере я хочу, чтобы класс реализовал IFoo
(например, Foo
) и представил другой тип, DependentType (например, int
), чтобы я могиспользуйте IMyGeneric<Foo>
, у которого есть методы:
public Foo ReturnSomeTBar()
{
}
public int ReturnSomeTypeOnTBar()
{
}
Ясно, что приведенный выше код не компилируется, так есть ли способ добиться такого поведения универсальной цепочки?