实现后密封接口

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(使用前将#替换为@)

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

  • 具有相同参数类型但具有不同常量限定符的 std::vector 的转换

    问题很简单 静态转换 或其他一些转换 通常是安全的 std vector lt Foo gt to std vector lt const Foo gt 就二进制而言 我不明白为什么本机类型会有所不同 毕竟const是一种语言约束 不应影响
  • 结构体如何存储在内存中?

    我有一个struct iof header在我的代码中 我确定它的宽度是 24 字节 我执行 sizeof iof header 它返回 32 字节宽 问题1为什么是 32 字节宽而不是 24 字节宽 问题2包括其成员在内 结构体如何存储在
  • .NET 单点登录

    我一直在尝试使用 C 为 NET Web 应用程序实现 WEB SSO 服务提供程序插件 我将使用 shibboleth 身份提供商 我已经使用 OpenSAML 库为 java 应用程序实现了相同的功能 我想知道在 NET 应用程序中使用
  • fopen_s 怎么会比 fopen 更安全呢?

    我正在处理遗留代码Windows平台 当我编译代码时VS2013 它给出以下警告 错误 C4996 fopen 该函数或变量可能不安全 考虑使用fopen s反而 要禁用弃用 请使用 CRT SECURE NO WARNINGS 详情请参见
  • 平滑手绘曲线

    我有一个允许用户绘制曲线的程序 但这些曲线看起来不太好 它们看起来摇摇欲坠 而且是手绘的 所以我想要一种能够自动平滑它们的算法 我知道平滑过程中存在固有的模糊性 因此它不会每次都完美 但这种算法似乎确实存在于多个绘图包中 并且它们工作得很好
  • 使用 C# 将多个音频样本混合到单个文件中

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个能够创建音频文件 mp3 或 wav 的库 NAudio http www codeple
  • 将 dataGridView 中选定的行作为对象检索

    我有一堂这样的课 public partial class AdressBokPerson public long Session get set public string F rnamn get set public string Ef
  • Monotouch全局异常处理

    我在野外发现了一只令人讨厌的虫子 但我无法确定它的具体情况 有没有办法拥有全局 Try Catch 块 或者有办法处理 Monotouch 中未处理的任何异常 我可以包起来吗UIApplication Main args 在 try cat
  • 如何自定义 Google 测试失败消息?

    我编写了一个如下所示的 Google 测试 它将一些计算值与 CSV 文件中预期存储的值进行比较 class SampleTest public testing Test public void setupFile const std st
  • 如何让XmlReader读取C#中的属性?

    我有一个 XML Stream 其中包含以下 XML 内容
  • 如何构建一棵与或树?

    我需要一个支持 与 和 或 的树结构 例如 给定一个正则表达式 如ab c d e 我想把它变成一棵树 所以 一开始我们有两个 或 分支 它可以向下ab or c d e 如果你低头ab分支 你得到两个节点 a and b or a其次是b
  • 从 DataRow 单元格解析 int [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何从 DataRow 单元格解析 int 值 Int32 Parse item QuestionId ToString 这段代码可以工作 但看
  • Type.GetInterfaces() 仅适用于声明的接口

    首先 像这样的问题有很多 也许有些OP甚至在问同样的问题 问题是这些问题的答案 无论是否接受 都没有真正回答这个问题 至少我找不到 如何确定类直接声明的接口 而不是由父级或声明的接口继承的接口 e g interface I interfa
  • 如何同步nosql db(ravendb)中的更改

    我已经开始在 RavenDB 的示例上学习 NoSQL 我从一个最简单的模型开始 假设我们有由用户创建的主题 public class Topic public string Id get protected set public stri
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 具有四个 && 的 LINQ Where 子句

    我正在尝试在Where 子句中创建一个带有4 个参数的LINQ 查询 这是一个 Windows 8 应用程序项目 我正在使用 SQLite 数据库 SQLite 实现 https github com praeclarum sqlite n
  • 从对列表创建邻接列表类型结构

    在 C 中 我有 class Pair int val1 int val2 我有一个来自以下来源的配对列表 List
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma
  • 如何使用 C# 为 azure devops 变量赋值

    我有 selenium C 测试脚本 可以从浏览器获取令牌 我有两个 azure devops 任务 一个用于执行 selenium 测试 另一个用于执行 API 测试 我想将 selenium 测试获取的令牌传递给 API 测试执行任务

随机推荐

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

    之间的确切区别是什么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