使用成员作为实现者来实现接口

2024-05-12

我有实现 IA 的 A 类。
现在我需要创建也应该实现 IA 的类 B。 B 类有 A 类的实例作为成员。

有什么方法可以定义A的实例实现B类中的IA吗?

interfase IA {
    void method1();
    void method2();
    .
    .
    .
    .
    void methodN();
}

class A:IA {
    public void method1(){}
    public void method2(){}
    .
    .
    .
    .
    public void methodN(){}
}

class B:IA {
    private IA m_a;
    public B(IA a) {
      m_a=a;
    }

    //Instead all of this I am looking of a way to define that m_a is the implement to IA of B
    public void method1(){ use of a.method1 }
    public void method2(){ use of a.method2 }
    .
    .
    .
    .
    public void methodN(){ use of a.methodN }
}

并非如此,您可能想要定义某种返回IA会员,如Enumerable/Enumerator图案。

public interface IB
{
   public IA Item { get; }
}

然后 B 可以简单地返回您存储在其中的实例。

public class B : IB
{
    public IA Item { get; private set; }
}

A甚至可以实施IB

public class A : IA, IB
{
    public void Method1();
    //...
    public void MethodN();

    IA IB.Item
    {
        get
        {
            return this;
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用成员作为实现者来实现接口 的相关文章

随机推荐

  • Hibernate @OneToMany 注释到底是如何工作的?

    我对 Hibernate 还很陌生 我正在通过教程学习它 我在理解到底如何一对多注释作品 所以我有这两个实体类 Student代表一个学生并且Guide代表指导学生的人 因此 每个学生都与一名向导相关联 但一名向导可以跟随多个学生 我想要一
  • uncss 错误:C.UTF-8:不是有效的语言标签

    嗨 我正在尝试使用UNCSS https github com giakki uncss第一次从 CSS 中删除未使用的样式 我收到以下错误 Fontconfig 警告 忽略 C UTF 8 不是有效的语言标记 home ubuntu nv
  • Symfony 5.4 Security Bundle,注册后无法登录

    我在 5 4 版本上构建空的新项目 我使用这些命令来构建项目 composer create project symfony skeleton 5 4 testapp54 cd testapp54 composer require weba
  • 无法在cordova项目中安装插件

    我面临一个大问题 Unable to install the phonegap plugins在我的科尔多瓦项目中 实际上昨天它仍然工作正常 现在 每当我尝试在我的 cordova 项目中使用 CLI 添加任何 cordova 插件时 我收
  • 如何使用css网格制作一个垄断板?

    I want to create a monopoly board like There are following features in the board 角是方形的 比其他盒子大 每行的文本都面向特定的角度 我的基本 html 结构
  • 通过 SSLStream 发送数据时出现数据包碎片

    当使用 SSLStream 将 大 数据块 1 兆 发送到 已通过身份验证的 客户端时 我看到的数据包碎片 分解是FAR比使用普通 NetworkStream 时更大 在客户端上使用异步读取 即 BeginRead 会重复调用 ReadCa
  • 如何在 Flutter 中更新 AnimatedList 中的数据

    如何在 Flutter 中更新 AnimatedList 中的数据 添加 删除行 我可以在 ListView 中通过更新支持数据并调用来完成此操作setState 例如 setState data insert 2 pig 不过 在 Ani
  • 如何在 Swift 编程中获得基于导航的模板功能

    我的项目需要一个导航控制器 并且我的应用程序最初有一个社交登录 一旦验证通过 用户将被推送到另一个视图 我在其中显示一个具有 2 个选项卡的选项卡控制器 我不知道如何在 Swift 编程中做到这一点 我已将视图控制器嵌入到导航控制器中 一旦
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • CMS:将自定义页面存储为文件或 MySQL 数据库中?

    我正在 PHP 中创建一个自定义 CMS 从头开始编写 并且想知道是否应该将用户创建的页面存储为文件或存储在 MySQL 数据库中 内容全部是 HTML 代码 至少目前是这样 我无法决定该做什么 因为用 php 编写文件似乎存在安全风险 并
  • 如何将模型结果保存到文本文件?

    我正在尝试将从模型生成的频繁项集保存到文本文件中 该代码是 Spark ML 库中 FPGrowth 示例的示例 Using saveAsTextFile直接在模型上写入 RDD 位置而不是实际值 import org apache spa
  • Python3 - 如何将字符串转换为十六进制

    我正在尝试将字符串逐个字符转换为十六进制 但我无法在Python3中弄清楚它 在较旧的 python 版本中 我的以下内容有效 test This is a test for c in range 0 len test print 0x s
  • Azure队列触发器函数未触发

    我用Python设计了一个Azure队列触发器函数 具有以下功能 当一条消息添加到名为 Input 的队列时 该函数会触发 它处理添加到输入队列的消息并将结果存储在输出队列中 现在我的问题是当我在本地运行时这工作正常 但是在部署函数应用程序
  • SDL Tridion 中的关键字路径

    有人可以提供一些关于如何做到这一点的想法吗 这可能非常简单和基础 但我无法弄清楚 这是我的要求 我有一个带有子关键字 B 的类别 A 而 B 有另一个子关键字 C 我想获取组件模板中所选关键字的确切路径 例如 如果用户选择关键字 C 我需要
  • saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

    sabre sd 基于 imx 6 最大内部 RAM 约为 150Kb 然而 uboot 足够大 可以容纳在这个空间中 在这个场景中事情是如何进行的 https community freescale com docs DOC 95015
  • Coq:多个构造函数的单一表示法

    是否可以在 Coq 中为多个构造函数定义单一符号 如果构造函数的参数类型不同 则可以从中推断出它们 一个最小的 非 工作示例 Inductive A Set a b c C gt A d D gt A with C Set c1 c2 wi
  • ASP.Net MVC MvcBuildViews 大幅增加编译时间

    我们有一个项目 希望构建视图 以便在视图的 cshtml 文件中有任何错误时生成编译时错误 尽管如此 编译时间仍然急剧增加 MvcBuildViews true需要 62 秒 MvcBuildViews false需要 9 秒 这是可以接受
  • AVPlayerLooper 每次迭代后黑闪

    我正在使用 Apple 的示例代码在UICollectionViewCell背景 我在用着AVPlayerLooper 因为它是同一视频的迭代 我的问题是 当视频结束时 它会显示轻微的黑屏闪烁 也许它正在将视频搜索到0时间 我不确定 这是代
  • 为什么 Firefox 3.6 改变了 jQuery 和 CSS 属性?

    为什么 Firefox 3 6 改变了 jQuery 和 CSS 属性 好吧 更具体一点 我有一个交叉淡入淡出插件 可以在放置在彼此之上的两个图像之间创建发光效果 该函数 如下所示 将使顶部图像在悬停时在 200 毫秒内转换为不透明度 0
  • 使用成员作为实现者来实现接口

    我有实现 IA 的 A 类 现在我需要创建也应该实现 IA 的类 B B 类有 A 类的实例作为成员 有什么方法可以定义A的实例实现B类中的IA吗 interfase IA void method1 void method2 void me