1

再次愚蠢的问题。

我有这个类通过一个基类引入一些代码,如下所示:

class TVIRoot : OURTreeNodeImpl { }

我现在想添加一些模板功能

class TVIRoot<TLabelHandler> : OURTreeNodeImpl { }

但是当我需要提供一些约束时,我无法弄清楚我需要什么样的手指修改才能编译它。

class TVIRoot<TLabelHandler> where TLabelHandler : new(), OURTreeNodeImpl { } //no    
class TVIRoot<TLabelHandler> where TLabelHandler : SomeClass : OURTreeNodeImpl { } //no
class TVIRoot<TLabelHandler> : OURTreeNodeImpl, where TLabelHandler : SomeClass { } //no

这可以做到吗?

非常感谢。

bg

4

2 回答 2

2
class TVIRoot<TLabelHandler> : OURTreeNodeImpl where TLabelHandler : SomeClass { } //yes
于 2013-03-27T12:13:52.610 回答
0

约束出现在基类继承之后,这是一个示例:

public interface  IFood
{
}

public class Animal
{
}

public class Cat<T> : Animal where T : IFood
{
    public void Eat(T food)
    {
    }
}

有关更多详细信息,请查看:http: //msdn.microsoft.com/en-US/library/d5x73970 (v=vs.80).aspx

于 2013-03-27T12:25:56.057 回答