在接口方法中访问接口实现器的类型

本文关键字:接口 类型 实现 访问 方法 | 更新日期: 2023-09-27 18:25:08

public interface IMy<T>
{
    T Implementer
    {
        get;
    }
}
public class MyClass : IMy<MyClass>
{
    ...
}

但我想要的是这个:

public interface IMy
{
    I Implementer
    {
        get;
    }
}

请接受,出于某种疯狂的原因,我需要一个接口来定义一个以实现者类型返回的方法。不?好的,假设它类似于XML资源管理器,因此例如调用我的接口ITree

接口

主要帮助我组织(分开(,但是当我有一个需要我依赖约定的接口时,它似乎违背了目的。

在接口方法中访问接口实现器的类型

您希望能够说"接口应该知道谁实现它,并在其定义中自动提供实现者的类型,由实现者继承"?喜欢

public interface IMy
{
    ImplicitImplementerType SomeProperty
    {
        get;
    }
}

我很确定这是不可能的。不过,这样的事情可以在更动态的语言中实现(我在这里猜测(。

不能静态指定此类返回类型。在 C#(和 CLR(中,没有"此类型"。但是你可以在运行时找到它:

var thisType = this.GetType()

由于我认为这不是你需要的,我必须告诉你,不可能做你想做的事。

当然,你的第一个代码片段起作用,但你不希望这样。