1

可能重复:
定义构造函数签名的接口?

我可以在接口中声明方法和属性,并强制实现它的类来实现这些方法和属性。同样,是否可以强加一个规则,使我所有实现某个接口的类都应该始终具有参数化构造函数?

我不确定这是否可能。只是一个想法。

谢谢

4

3 回答 3

4

同样,是否可以强加一个规则,使我所有实现某个接口的类都应该始终具有参数化构造函数?

不,不是通过接口声明。

你可以创建一个抽象类,可以有一个参数化的构造函数——所有实现类型都将继承构造函数,并且能够使用base关键字链接到它。请注意,这不会阻止您从实现无参数构造函数中继承类型。

于 2012-07-14T18:35:28.893 回答
1

不,但是如果您的目标是规范接口实例的构造方式,请定义另一个接口,它是第一个实例的工厂。在工厂界面中,您可以强加所需的构造参数。

interface IFoo
{
    ...
}

interface IFooFactory
{
    IFoo CreateFoo(string param1, string param2)
}
于 2012-07-14T19:06:02.923 回答
0

A class have contructor and interface cannot. So you cannot in force classes that implement certain interface to have a parameterised contructor

But you can have a class with a multiple constructors and its children can have a choice which constructor they want to use

于 2012-07-14T18:46:41.990 回答