Я пытаюсь перевести этот кусок кода с Java на C # и у меня возникают проблемы с поиском правильного синтаксиса
Java:
public class MyClass<T extends IMyInterface<T>>
Моя попытка перевести на C #:
public class MyClass<T, U> where T: IMyInterface<U>
Если я сделаю public class MyClass<T> where T: IMyInterface<T>
, в объявлении класса не будет ошибки компиляции, но я не могу понять, как использовать класс.
Более конкретно, у меня есть интерфейс IPoint<T>
, который реализован классом EuclideanPoint:IPoint<EuclideanPoint>
.Кроме того, у меня есть шаблонный класс Clusterer<U>
, который не должен заботиться о параметре шаблона интерфейса, он должен только убедиться, что U имеет тип IPoint.
Спасибо.