c# - 我可以强制一个实现类返回一个它自己类型的对象吗?

标签 c# interface

我想在 C# 中创建一个接口(interface),该接口(interface)定义一个始终返回实现类对象的方法,因此:

public interface IParser {
    IParser Parse(string s);
}

public class Parser : IParser {
    public Parser Parse(string s) {
        return new Parser(s);
    }
}

我可以强制一个实现类返回一个它自己类型的对象吗?如果可能,那么如何?还是泛型就是这里的答案?

NB: The code is just an illustration, not something that's supposed to run.

最佳答案

泛型就是这里的答案。

public interface IParser<T> where T:IParser<T> {
    T Parse(string s);
}

public class Parser : IParser<Parser> {
    public Parser Parse(string s) {
        return new Parser(s);
    }
}

关于c# - 我可以强制一个实现类返回一个它自己类型的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1688289/

相关文章:

c# - 如何确保dll的存在

apache-flex - 弹性界面问题

java - Java是如何实现接口(interface)多态的?

c# - 为什么这个测试表达式是错误的?

c# - 当前上下文中不存在 DefaultAuthenticationTypes

c# - 如何从azure表中获取连续的行集?

c# - 在 richtextbox 中查找所有换行符

c# - 从多个程序集中检索实现接口(interface)的对象

module - 在 PACT 中存储和检索模块引用

java - 在java中创建接口(interface)对象