编写没有成员的接口(interface)有什么意义?
INamingContainer是 .NET Framework 中的一个示例。它在 MSDN 中被描述为:
Identifies a container control that creates a new ID namespace within a Page object's control hierarchy. This is a marker interface only.
它是否只用于这种 block :
if (myControl is INamingContainer)
{
// do something
}
或者它还有其他优点吗?
编辑:它被称为Marker Interface Pattern (感谢普雷特)
最佳答案
无成员接口(interface)用于在 C# 中提供类似混合的功能。所以给定一个 A 类:
class A : B { ... }
您可以通过定义接口(interface) IStuff 为其提供额外的功能(a-la 多重继承):
interface IStuff {}
然后在 A 中“实现”它:
class A : B, IStuff { ... }
然后添加额外的功能
class Methods {
public static void Something(this IStuff stuff) {
// some functionality here
}
}
关于c# - 为什么我们使用无成员接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/653315/