【发布时间】:2012-07-14 05:44:05
【问题描述】:
我可以在接口中声明方法和属性,并强制实现它的类来实现这些方法和属性。 同样,是否可以强加一个规则,使我所有实现某个接口的类都应该始终具有参数化构造函数?
我不确定这是否可能。只是一个想法。
谢谢
【问题讨论】:
标签: c# oop constructor
我可以在接口中声明方法和属性,并强制实现它的类来实现这些方法和属性。 同样,是否可以强加一个规则,使我所有实现某个接口的类都应该始终具有参数化构造函数?
我不确定这是否可能。只是一个想法。
谢谢
【问题讨论】:
标签: c# oop constructor
同样是否有可能强加一个规则,使我所有实现某个接口的类都应该始终具有参数化构造函数?
不,不是通过接口声明。
您可以创建一个抽象类,而 它 可以有一个参数化的构造函数 - 所有实现类型都将继承构造函数,并且能够使用 base 关键字链接到它。请注意,这不会阻止您从实现无参数构造函数中继承类型。
【讨论】:
不,但如果您的目标是规范接口实例的构造方式,请定义另一个接口作为第一个实例的工厂。在工厂界面中,您可以强加所需的构造参数。
interface IFoo
{
...
}
interface IFooFactory
{
IFoo CreateFoo(string param1, string param2)
}
【讨论】:
一个类有构造函数,而接口不能。因此,您不能强制实现某些接口的类具有参数化构造函数
但是你可以有一个具有多个构造函数的类,它的子类可以选择他们想使用哪个构造函数
【讨论】: