关于c#:始终使用参数化构造函数的类

Class with parametrized constructor always

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Interface defining a constructor signature?

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

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

谢谢


Similarly is it possible to impose a rule such that all my classes which implement a certain interface should always have a parametrized constructor?

不,不是通过接口声明。

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


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

1
2
3
4
5
6
7
8
9
interface IFoo
{
    ...
}

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


类具有构造函数,而接口不能。因此,不能强制实现某些接口的类具有参数化的构造函数

但是您可以有一个具有多个构造函数的类,它的子类可以有一个选择,他们想使用哪个构造函数