是否可以约束实现接口的类的构造函数?

Lou*_*hys 1 c# oop constructor interface

是否可以设置实现接口的所有类必须具有的约束,例如,空构造函数?像where T : new()泛型中的约束?

Jus*_*tin 5

否 - 不可能对给定接口的派生类或实现者施加任何此类约束.

这样的约束通常不会是一个特别好的主意/有用,因为通常在使用接口时,您通常使用实现该接口的对象的实例,在这种情况下,对象自然已经被创建并且这样的约束是多余的.(当然是泛型的例外,在这种情况下你可以使用new()约束).

我的猜测是你试图创建某种插件系统,并希望限制你的插件接口的实现,以便有一些你可以用来实例化的默认构造函数......如果是这种情况,那么你通常有更好的选择可以使用,如MEF.

你能详细说明你为什么需要这个吗?