Дженерики С#: использование универсального класса в предложении where универсального метода

Кто-нибудь может объяснить, почему это невозможно (по крайней мере, в .Net 2.0):

public class A
{
    public void Method() where U : T
    {
        ...
    }
}

...

A obj = new A();
obj.Method();

где K является надклассом J

РЕДАКТИРОВАТЬ

Я попытался упростить задачу, чтобы сделать вопрос более разборчивым, но я явно переусердствовал. Извиняюсь!

Думаю, моя проблема немного конкретнее. Это мой код (на основе this):

public class Container
{
    private static class PerType where U : T
    {
        public static U item;
    }

    public U Get() where U : T
    {
        return PerType.item;
    }

    public void Set(U newItem) where U : T
    {
        PerType.item = newItem;
    }
}

и я получаю эту ошибку:

Container.cs(13,24): ошибка CS0305: Использование универсального типа Container.PerType' требует аргумент(ы) типа 2'

5
задан Community 23 May 2017 в 12:18
поделиться