构造函数没有通用名称,而是与类同名,因此在接口(interface)类中强制执行它们存在语法问题。那么像这样的语法是什么:
Interface IInterface {
<class-name-of-implementer>(string param) {}
}
我在创建初始化方法时看到的问题是您的框架/库的客户端应用程序可能会忘记调用它!在我看来,如果构造函数只是像在其他一些语言中一样被命名为 __Constructor 那是可能的,但仅仅因为语法是不可能的!
语法不应驱动设计,而应驱动语义。
最佳答案
恐怕你不能。
一般来说,无论如何您都无法使用这样的构造函数 - 您希望如何调用它?您可以在类型参数上强制执行无参数构造函数,如下所示:
public class Foo<T> where T : new()
但您不能指定任何必需的参数。
我之前曾建议能够在接口(interface)中指定静态成员(包括构造函数),仅用于类型约束(并在基于这些的表达式中使用它们的成员)会很有用约束类型参数)。参见 my blog post了解更多详情。
关于c# - 如何使用 Interface 类强制执行 Constructor 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3750807/