gpt4 book ai didi

c# - 如何使用 Interface 类强制执行 Constructor 方法?

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:13 24 4
gpt4 key购买 nike

构造函数没有通用名称,而是与类同名,因此在接口(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com