实现后密封接口

2023-11-26

我正在做一个小项目,我遇到了这个问题。

项目输出是一个包含接口的库。如果可能的话,我想实现该接口并密封其中的功能:

public interface ITest
{
    void SomeMethod();
}

class A : ITest
{
    public sealed override SomeMethod()
    {

    }
}

这个想法是让每个人都可以使用该接口,并有一些专门的类来实现它。例外的是,我想确保如果有人创建 A 类型的专门类,他/她将无法更改该方法的行为。

问题是您不能将“override”关键字放在那里,因为该方法没有在接口中声明为“虚拟”。而且您不能在界面中将其声明为“虚拟”,因为这是不允许的。并且您无法删除“override”关键字,因为“sealed”需要它。

任何解决方法或集思广益的想法都会受到欢迎,但如果有人能想出一个包含界面的解决方案,我会很高兴学习它!

Thanks!

编辑:忘记这个问题!就像 Ani 所说,我忘记了 C# 中的默认方法是密封的。似乎偶尔回到基础知识总是好的......


我可能完全误解了这个问题,但如果你的意图是将方法密封在A,你可以这样做:

class A : ITest
{
    public void SomeMethod()  { ... }
}

与 Java 不同,C# 中的方法是密封的默认情况下。的子类A由于尚未标记,因此无法覆盖该方法virtual.

另一方面,如果您的目的是在接口中将方法标记为“几乎密封”,以便它forces在实现类上立即密封它,这是不可能的。接口的职责不是(也不应该是)来规定这些实现细节——接口意味着代表一个规格.

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

实现后密封接口 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 溢出换行和断字之间的区别?

    之间的确切区别是什么overflow wrap word wrap and word break 谁能告诉我打破很长链接的更好方法是什么 大多数人说你应该将分词与overflow wrap但这看起来不太合逻辑 我认为使用overflow w
  • 随机排列数组 swift 3

    我怎样才能将下面的函数转换为swift 3 目前正在获取一个Binary operator lt cannot be applied to operands of type Int and Self IndexDistance error
  • 修改核心数据模型后重新创建类定义的更好方法?

    在 XCode 中设计核心数据模型时 可以通过以下方式自动生成 NSManagedObject 子类定义 m 和 h 文件 选择Entities 选择 创建 NSManagedObject 子类 EDITOR menu 之后 您可能会在这些
  • 你能使用 WINDOWS 构建一个 React-native iOS 应用程序吗?

    您可以在 Windows 上使用 React Native 构建 iOS 吗 还是需要xcode 如果是这样 有什么解决方法吗 我不想在 Mac 或 Mac 虚拟机上工作 我认为你用react native创建的应用程序可以在iOS上运行
  • 如何将 Docker 容器配置为可以通过容器 IP:端口从主机外部访问?

    我的主机有多个 IP 地址分配给一个网络接口 我想配置 Docker 以便让每个容器 响应 分配给主机的这些 IP 地址中的单个 IP 这可以通过 libcontainer 完成还是我必须使用 LXC 驱动程序并使用以下命令运行我的容器 l
  • 在响应完成之前关闭 HttpURLConnection

    背景 我在用着HttpURLConnection在客户端上使用 HTTP 流 服务器推送 情况下的响应 尽管服务器可以通过关闭响应来关闭连接 但客户端也需要能够执行此操作 Problem 客户端处理InputStream在一个单独的线程中
  • Shell:在多个文件中查找匹配行

    我正在尝试使用 shell 脚本 以及 oneliner 来查找大约 50 个文件之间的任何公共行 Edit 注意我正在寻找出现在所有文件中的一行 行 到目前为止我已经尝试过 grepgrep v x f file1 sp 它只匹配所有其他
  • 编译器强制我实现特征方法,但方法上绑定的“Self”特征永远不会满足我的类型

    我有一个特质Foo 我想强迫实现者定义一个方法 if这些实现者实现了另一个特征 Clone在此示例中 我的想法 操场 trait Foo Note in my real application the trait has other met
  • 导入 Access .mdb 时 SQL Server 导入向导“工作组信息文件”错误

    是否可以导入 MS Access 如果我没有安装 MS Access 如何将 mdb 文件导入 SQLExpress 我问的原因是因为我在尝试使用 SQL Management Studio 中的导入向导执行此任务时收到以下错误 由于初始化
  • PHP 8.2 动态属性已弃用:如何以兼容的方式使用它们

    在 PHP 8 2 中 动态属性已弃用 并且从 PHP 9 开始将导致致命错误 Using 动态属性 on Classes运行 PHP 8 2 将导致PHP Deprecated Creation of dynamic property i
  • matplotlib 动画绘图不会使用 blit 更新轴上的标签

    我正在使用 wxPython 在图中绘制数据 其中 y 轴上的数据限制随着数据而变化 我想动态更改轴而不重新绘制整个画布 例如canvas draw 相反我想用blitting为此 就像我为情节本身所做的那样 我要做的是改变 y 轴 并且我
  • 方法里面可以有方法吗?

    我有一个方法里面有一个方法 内部方法取决于正在运行的变量循环 这是一个坏主意吗 更新 由于这个答案最近似乎引起了一些兴趣 我想指出的是关于 Ruby 问题跟踪器的讨论remove这里讨论的功能 即forbid在方法体中包含方法定义 不 Ru
  • Python Tkinter 网格几何粘性设置无效(?)

    我正在使用 Python Tkinter 设计简单的输入对话框grid几何 并得到一些意想不到的行为 当我开始使用这段代码时 winAddNew tk Toplevel winAddNew title Add New Customer lb
  • 获取局部变量的名称

    在开发和调试时 我有时希望能够编写一个单行代码来转储一堆变量的名称 类型和值 问题是我不知道如何访问变量的名称 如果可以的话 这是第一次尝试 foo 1 bar 42 baz Hash new foo bar baz each do v p
  • 如何使用 VBScript 判断 Excel 2007 电子表格是否打开以及是谁打开的

    如何判断 Excel 2007 电子表格是否已打开以及是谁使用 VBScript 打开的 我试图弄清楚 Excel 工作簿当前是否由另一个用户打开 并在我的脚本中返回该用户是谁 我已经弄清楚由谁来确定工作簿当前是否打开 这是一种解决方法 但
  • 计算两列中任意一列中字符串出现次数的向量化方法

    我有一个问题是similar to 这个问题 但只是足够不同 无法用相同的解决方案来解决 我有两个数据框 df1 and df2 像这样 import pandas as pd import numpy as np np random se
  • 如何下载离线副本MSDN(微软帮助文档)?

    我可以下载离线副本MSDN 微软帮助文档 吗 例如 我整天无法访问互联网 但我需要访问帮助信息 又该如何做呢 Yes 如果要简短 只需安装微软帮助查看器在其中您可以离线复制您需要的所有项目 Full instruction you can
  • 编程中的“原子”是什么意思?

    在 Effective Java 一书中 它指出 语言规范保证读或写 变量是原子的 除非变量是类型long or double JLS 17 4 7 在 Java 编程或一般编程中 原子 是什么意思 这是一个例子 假设foo是一个类型变量l
  • 在 Android Studio 上通过 CMake 将 OpenCV 添加到 Native C 代码

    我正在尝试通过 Cmake 将 Opencv 包含到 android studio 项目中的本机 C 代码中 我在网上做了一些研究 并从网上下载了FindOpenCV cmake文件并将其添加到我的android项目的app目录中 这也是
  • 实现后密封接口

    我正在做一个小项目 我遇到了这个问题 项目输出是一个包含接口的库 如果可能的话 我想实现该接口并密封其中的功能 public interface ITest void SomeMethod class A ITest public seal