Ближайшие соседи по многомерным данным?

Ответ Кирка находится справа. Как правило, вам не удастся получить вывод типа, если у вашей сигнатуры метода меньше типов параметров , чем у параметров типового типа .

В вашем конкретном случае, возможно, вы могли бы , возможно, перенести параметр типа T на уровень класса, а затем получить вывод типа по вашему методу Get:

class ServiceGate
{
    public IAccess Get(S sig) where S : ISignatur
    {
        throw new NotImplementedException();
    }
}

Затем код, который вы отправили с ошибкой CS0411, можно переписать как:

static void Main()
{
    // Notice: a bit more cumbersome to write here...
    ServiceGate service = new ServiceGate();

    // ...but at least you get type inference here.
    IAccess access = service.Get(new Signatur());
}

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