c# – 是否有可以实现的类?
我想写一个
X级(这个)哪个 继承自A(基础)可以 执行B(?)的方法,必须 实现C(接口)的成员. 实现A和C不是问题.但是由于X不能从多个类派生,所以X似乎不可能继承A和B的逻辑.注意A是非常重要的基类,B几乎是一个接口但包含可执行行为.我不希望B成为接口的原因是因为每个继承或实现它的类的行为都是相同的. 我是否真的必须将B声明为接口并为每个需要B行为的X实现完全相同的10行代码? 两个月后 解决方法
是的,不是.你需要让B成为一个界面.但是,不应在所有接口实现中复制常见的方法实现.相反,他们应该进入接口B的类扩展: public interface B { void MethodX(); void MethodY(); } public static class ExtensionsB { public static void MethodZ(this B b) { // Common implementations go here } } 扩展方法提供了一种“水平”共享实现的方法,而不会让您的类继承自第二个类.扩展方法的行为就像它们是类的常规方法一样: class X : A,B { public void MethodX() {...} public void MethodY() {...} } public static void Main(string[] args) { var x = new X(); x.SomeMethodFromA(); x.MethodX(); // Calls method from X x.MethodY(); // Calls method from X x.MethodZ(); // Calls method from ExtensionsB } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |