我有以下代码:
private int[] GetIds<T>(string nameString) where T : DomainBase
{
List<int> ids = new List<int>();
if (String.IsNullOrEmpty(nameString))
return ids.ToArray();
[more code here . . . .]
return ids.ToArray();
}
无论如何我可以在“where T”上添加另一个禁令,以使T支持某个接口(例如IFoo)以及DomainBase
答案 0 :(得分:4)
尝试
where T : DomainBase, IFoo
答案 1 :(得分:1)
您的约束受.net继承模型的限制。所以你只能有一个类作为约束,但任何数量的接口。其他人提供了很好的代码示例。
答案 2 :(得分:0)
当然,只需在DomainBase
之后使用逗号添加:
private int[] GetIds<T>(string nameString) where T : DomainBase, IFoo
答案 3 :(得分:0)
当然可以。只需像这样调整代码
private int[] GetIds<T>(string nameString) where T : DomainBase, INEOtherInterface
{
...
}