【发布时间】:2010-04-27 13:13:51
【问题描述】:
是否有可能在 C# 中实现一个接口,该接口声明了 10 个方法但只实现了 5 个方法,即只定义了该接口的 5 个方法?实际上我有一个由 3 个类实现的接口,并不是所有类都使用了所有方法,所以如果我可以排除任何方法???
我需要这个。这听起来可能是一个糟糕的设计,但并不希望如此。 问题是我有一组用户控件,它们需要具有公共属性,并且基于此,我只在运行时显示它们。由于它是动态的,因此我需要管理它们,因为我拥有属性。一些属性需要少数类而不是全部。并且随着控件的增加,此属性可能会增加,因此我需要一个控件来完全不需要任何使用。只是虚拟方法。同样,我认为如果有办法在课堂的其他部分避免这些方法,那就太好了。听起来除了拥有抽象类或虚拟函数之外别无他法:-(
【问题讨论】:
-
听起来你的界面不够细化,你需要应用界面隔离原则。
-
为什么不让公共属性成为接口的一部分,并提供一个特殊的
Dictionary属性来获取给定控件的所有自定义属性?或者为什么不为每种特殊的控件类型使用单独的附加接口?无论如何,您需要检查控件是否支持该自定义属性。只需使用is ICustomControlKind42或as ICustomControlKind42并进行空检查即可。 -
@iPhone:你能简单介绍一下吗?或者你能展示一些相同的链接或例子吗????