SplitterPanel
是sealed
类而Panel
不是类。
你不能从sealed
类型派生。
文档:
密封类不能被继承。使用密封类作为基类是错误的。在类声明中使用sealed 修饰符来防止类的继承。
如果你想扩展sealed
类的功能,最好的方法 [IMO] 是创建扩展方法。例如:
public static class SplitterPanelExtensions {
public static void MyAdvancedMethod(this SplitterPanel splitterPanel) {
/*
* Check if splitterPanel is null and throw ArgumentNullException.
* because extension methods are called via "call" IL instruction.
*/
//Implementation.
}
//Other extension methods...
}
另一种方法是创建将保存密封类实例的类。如果您想隐藏要包装的类接口的某些部分,这是一个更好的选择。例如:
public class SplitterPanelWrapper {
private readonly SplitterPanel m_SplitterPanel;
public SplitterPanelWrapper(SplitterPanel splitterPanel) {
m_SplitterPanel = splitterPanel;
}
//Other implementation.
}