构造函数没有通用名称,但与类名相同,因此在接口类中强制执行它们存在语法问题。那样的语法是什么:
Interface IInterface {
<class-name-of-implementer>(string param) {}
}
我在创建初始化方法时遇到的问题是你的framwork / library的客户端应用程序只能忘记调用它!在我看来,如果构造函数被命名为__Constructor,就像在其他一些语言中那样可能因为语法而不可能!
语法不应该驱动设计而是语义。
答案 0 :(得分:3)
你不能,我害怕。
一般来说,无论如何你都无法使用这样的构造函数 - 你期望如何调用它?您可以对类型参数强制执行无参数构造函数,如下所示:
public class Foo<T> where T : new()
但您无法指定任何必需的参数。
我之前曾建议,能够在接口中指定静态成员(包括构造函数),仅用于类型约束(并在表达式中使用基于这些的成员)约束类型参数)。有关详细信息,请参阅my blog post。
答案 1 :(得分:2)
你不能这样做。你最好的选择是
interface IInterface
{
void Initialize(string param);
}
其中Initialize执行一些初始化工作(如果这是您正在执行的操作)。
答案 2 :(得分:0)
接口中不允许使用构造函数。
解决方法是在构造函数中放置一个initialize()方法,并在此处执行所有与构造函数相关的操作。凌乱,但这就是你所能做的一切。