Q:

C# Template parameter as a template interface

I am trying to translate this piece of code from Java to C# and I am having trouble finding the correct synthax
Java:
public class MyClass<T extends IMyInterface<T>>

My attempt at translating into C#:
public class MyClass<T, U> where T: IMyInterface<U>

If I do public class MyClass<T> where T: IMyInterface<T> , there is no compile error at the class declaration, but I cannot figure out how to use the class. 
More specifically, I have an interface IPoint<T>, which is implemented by class EuclideanPoint:IPoint<EuclideanPoint>. Also, I have a templated class Clusterer<U>, which should not care about the template parameter of the interface, it should only make sure that U is of type IPoint. 
Thank you.

A:

No, the C# equivalent of the Java would just be:
public class MyClass<T> where T : IMyInterface<T>

One type parameter in the Java, one in the C#.
How you use the class will depend on what IMyInterface<T> is and what implements it. For example, if it were IEquatable<T> instead, you could create a MyClass<int> because int implements IEquatable<int>.

