使用Generics C#3.5时出现编译错误

Mr.*_* T. 1 .net c# generics

以下代码无法编译:

class MyClass<T> :  where T : MyClass <T>{}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以解决这个问题吗?我使用了以下解决方法,但我想知道是否有更好的方法

class MyClass <T> : IMyClass where T : IMyClass {}
interface IMyClass {}
Run Code Online (Sandbox Code Playgroud)

dtb*_*dtb 5

仅当您要从基类派生类或实现接口时,才需要在类名后面添加冒号:

class MyClass<T> where T : MyClass<T>
//              ?
//              no ':' here
Run Code Online (Sandbox Code Playgroud)