为标题道歉-我真的想不出一种很好的方式来描述我的要求。
我希望能够定义一个通用接口(或类,没关系),其中Type参数提供了另一个可以从该类访问的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()
{
}
显然,上面的代码无法编译,因此有没有办法实现这种通用链接的行为?
最佳答案
首先,IFoo也需要通用
interface IFoo<TDependent>
{
TDependent DependentType { get; }
}
然后IMyGeneric将需要具有2个类型参数
interface IMyGeneric<TBar,TDependent> where TBar : IFoo<TDependent>
{
TBar ReturnSomeTBar();
TDependent ReturnSomeTypeOnTBar();
}
也许这会使您更贴近您的生活。
关于c# - 使用通用类型中定义的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6571856/