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 に答える