在继承此接口的类型的接口中指定类型

Specifying a type in an interface of the type that inherits this interface

需要此代码的真正实现

interface IExample{
   public this ReturnMe();
}
class Example : IExample {
   public this ReturnMe(){...} //returns an instance of the Example class
} 

您可以return接口本身:

interface IExample
{
    public IExample ReturnMe();
}
class Example : IExample
{
    public IExample ReturnMe() => new Example();
} 

或使用curiously recurring template pattern:

interface IExample<T> where T : IExample<T>
{
    public T ReturnMe();
}

class Example : IExample<Example>
{
    public Example ReturnMe() => new Example();
} 

请注意,这不会阻止有人写 class Example : IExample<SomeOtherClass>

自从 C# 9 切换到抽象基础 class 并使用 covariant return type:

后,另一个可用选项
abstract class ExampleBase
{
    public abstract ExampleBase ReturnMe();
}
class Example : ExampleBase
{
    public override Example ReturnMe() => new Example();
}