c# - 如何在继承链的中间插入类?

标签 c# inheritance xamarin xamarin.forms

我有如下类,其中 A : B 表示 A 继承自 B:

GatewayBaseActivity : SDKBaseActivity : AppCompatActivity

FormsAppCompatActivity : AppCompatActivity

我该怎么做才能拥有一个具有 GatewayBaseActivity 的所有功能的类,而不是像这样继承:

GatewayBaseActivity : SDKBaseActivity : FormsAppCompatActivity : AppCompatActivity

本质上是将 FormsAppCompatActivity 粘贴在继承树中的 SDKBaseActivity 和 AppCompatActivity 之间。

这些类都来自 Xamarin、Android 和 Airwatch。在不重写一半类的情况下执行此操作的最佳方法是什么?

最佳答案

给定以下层次结构:

class A { }
class B: A { }
class D: B { }
class E: D { }

在明显的地方插入一个类 C 非常简单;你只需要修改D

class C: B { }
class D: C { }

如果您不拥有 D 并且无法访问和更改其实现,那么您无能为力;您不能更改第三方实现的基类。

关于c# - 如何在继承链的中间插入类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48833930/

相关文章:

sqlite - Azure IMobileServiceSyncTable 解析器堆栈溢出

c# - SQL anywhere查询错误: Not enough values for host variables

c# - 查找系统和程序内存使用情况的替代方法

C# System.Thread.ThreadStateException 异常

java - 如何将不同的对象(具有相同的父对象)传递给构造函数以及如何在构造函数中识别该对象的类型

ios - 泛型类型约束与继承

c# - 在 Json.net 中获取错误 "Cannot add or remove items from Newtonsoft.Json.Linq.JProperty"

c++ - 在这种情况下,如何在基类中设计我的 switch case 函数

c# - Xamarin 删除 TableSection 顶部边框

xamarin.ios - Xamarin.iOS 应用程序何时需要 Register 属性?