始终具有参数化构造函数的类

时间:2012-07-14 18:32:32

标签: c# oop constructor

  

可能重复:
  Interface defining a constructor signature?

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

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

由于

3 个答案:

答案 0 :(得分:4)

  

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

不,不是通过接口声明。

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

答案 1 :(得分:1)

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

interface IFoo
{
    ...
}

interface IFooFactory
{
    IFoo CreateFoo(string param1, string param2)
}

答案 2 :(得分:0)

一个类有构造函数和接口不能。因此,您不能强制实现某个接口的类具有参数化的构造函数

但是你可以拥有一个带有多个构造函数的类,它的子代可以选择他们想要使用的构造函数