C# - 关键字使用 virtual+override 与 new

2023-12-07

在基类型中声明方法有什么区别“virtual”,然后使用“在子类型中覆盖它override" 关键字而不是简单地使用 "new" 子类型中声明匹配方法时的关键字?


我总是发现这样的事情用图片更容易理解:

再次,采用约瑟夫·戴格尔的代码,

public class Foo
{
     public /*virtual*/ bool DoSomething() { return false; }
}

public class Bar : Foo
{
     public /*override or new*/ bool DoSomething() { return true; }
}

如果您随后像这样调用代码:

Foo a = new Bar();
a.DoSomething();

注意:重要的是我们的对象实际上是一个Bar,但我们是将其存储在类型变量中Foo(这与铸造类似)

那么结果会如下,取决于你是否使用了virtual/override or new当宣布你的班级时。

Virtual/Override explanation image

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

C# - 关键字使用 virtual+override 与 new 的相关文章

  • 反序列化 GUID 数组时出现 JSON.NET 异常

    我正在使用 JSON NET 反序列化从浏览器发送的 AJAX HTTP 请求 并且在使用 Guid 作为参数的 Web 服务调用时遇到问题 当我使用内置的 NET 序列化器时 这工作得很好 首先 流中的原始字节如下所示 System Te
  • CodeLite 配色方案(主题)对于 C 来说很混乱

    我最近将 CodeLite for Linux Debian 更新到版本 14 0 我主要将 CodeLite 用于 C 看起来 IDE 搞乱了颜色主题 这里我有之前 CodeLite 13 0 https i stack imgur co
  • 从 WatchOS 捕获 Apple Watch 的型号标识符

    似乎没有任何记录的官方方法可以从手表应用程序获取 Apple Watch 模型 但有一篇文章显示了特殊用途sysctlbyname 如何确定Apple Watch型号 https stackoverflow com questions 49
  • pop() 期间提升 Fibonacci 堆访问冲突

    Context 我目前正在实现某种形式的 A 算法 我决定使用 boost 的斐波那契堆作为底层优先级队列 我的图表是在算法运行时构建的 作为我使用的顶点对象 class Vertex public Vertex double double
  • 如何使用仿函数作为类模板中的成员?

    我试图使用函子作为std function类模板内的对象 以下是我到目前为止所做的事情 the functor class template template
  • 如何在 Multiline 属性设置为 true 的文本框中将空格替换为换行符?

    假设我有这个字符串 string str The quick brown fox jumps over the lazy dog 如何替换或忽略字符串中的空格并在多行文本框中输入每个单词 预期输出 The quick brown fox j
  • C++ 局部变量销毁顺序

    C 11 中是否存在局部变量释放的定义顺序 更简洁地说 同一作用域中两个局部变量的析构函数的副作用将以什么顺序变得可见 e g struct X X do something int main X x1 X x2 return 0 Is x
  • C# 中的 memcpy 函数 [重复]

    这个问题在这里已经有答案了 可能的重复 C memcpy 等效项 https stackoverflow com questions 510971 c memcpy equivalent 相当于什么memcpyC 中的函数 正如已经说过的
  • 无符号长十六进制表示

    include
  • 如何将值从 ASP.NET MVC 控制器传递到 MVC 视图内的 ASP.NET Webforms 控件?

    我的 ASP NET MVC 方法并未跨越 ASP NET Web 窗体 因此我很难理解如何更好地将值从 ASP NET MVC 控制器传递到 MVC 视图内的 ASP NET Webforms 脚本 例如 控制器动作 public Vie
  • 使用自定义对象的动态列表并且无法动态更改dataGrid的单元格属性

    我刚开始在 Stack 上发帖 我已经搜索了很长一段时间来解决与我类似的问题 我试图根据对象的布尔值动态地将 WinForms DataGridView 中的复选框从非只读更改为只读 它在调试模式下显示更改已经发生 但是一旦完全运行 应该只
  • 开始学习 C# 的最佳方式是什么?

    我对 vb 6 有一点编程经验 而 vb net 则不多 请告诉我成为专家 C 程序员的最佳方法 我知道这需要很长时间 想想你如何学习人类语言 阅读 写作 口语和听力 阅读代码 阅读文章 阅读示例 当您更有经验时 请查看您使用的一些项目的源
  • Linux 相当于 GetCommandLine 和 CommandLineToArgv?

    我想知道是否有一些 API 可以在 Linux 上获取当前进程的命令行参数 我想我是非常不清楚的 该问题的真正目的是通过命令行参数传递 unicode 文件名 从文件中读取 proc self cmdline 例如 wallyk zf od
  • 我不明白这个霍夫曼算法的实现

    template
  • 网页上的富文本编辑器

    我正在尝试在我的网页中添加一个富文本编辑器 用户可以在其中撰写评论并格式化他们所写的内容 类似于我们在此网站上撰写帖子的编辑器 谁能指出我关于此的正确方向 任何可以帮助我构建这样一个组件的教程 我还想要一个免费的产品 忘记之前提到 类似的东
  • 检测非 DPI 感知应用程序是否已扩展/虚拟化

    我正在尝试在 WinForms 应用程序中检测它是否由于操作系统具有高 DPI 而以缩放 虚拟化模式启动 目前 在以 3840x2400 缩放 200 缩放运行的系统中 应用程序将分辨率视为 1920x1200 DPI 为 96 缩放因子为
  • 如何在控制台应用程序中创建事件循环/消息管道?

    我想创建一个注册了一些事件的控制台应用程序 问题是这些事件永远不会被触发 在这种特殊情况下Windows 窗体 http en wikipedia org wiki Windows Forms我应该调用的应用程序Application Ru
  • 在 Outlook 中检索当前电子邮件正文

    在我的 Outlook 插件中 我想在功能区上添加一个按钮 因此当用户单击此按钮时 我想检索当前选定的电子邮件的正文 我有此代码 但它只检索收件箱中的第一封电子邮件 因为索引为 1 Microsoft Office Interop Outl
  • 用于 DSP 的快速 2D 卷积

    我想实现一些图像处理算法 这些算法旨在运行在小猎犬板 http en wikipedia org wiki Beagle Board 这些算法广泛使用卷积 我正在尝试为 2D 卷积找到一个好的 C 实现 可能使用快速傅里叶变换 我还希望该算
  • 在 Angular 6 和 ASP.net 中启用 CORS

    我正在尝试从 Angular 6 应用程序向发送电子邮件的 API 发送 POST 请求 我用邮递员测试了该请求并且它有效 但是当我在 Angular 应用程序中执行 POST 请求时 我的控制台中出现错误 我在 Angular 应用程序中

随机推荐

  • 即使主安装程序没有管理员权限,也可以在 Inno Setup 中执行安装后程序(子安装程序)

    就像在这个问题 我正在尝试实现一个安装程序 该安装程序在安装结束时启动另一个第 3 方驱动程序安装程序 这是通过使用管理权限运行我的安装程序来实现的 如果未指定 则为默认权限 Setup PrivilegesRequired admin 然
  • MySQL 累积产品组

    我一直在使用 WRDS CRSP 数据集 由宾夕法尼亚大学维护的用于学术研究的股票价格数据库 我一直在用 Python 下载数据并将其插入到我本地的 MySQL 数据库中 数据如下所示 主键为 quote date security id
  • Intellij IDEA Maven 导入问题

    我想切换到 IntelliJ 进行 forge modding minecraft 当我按照他们在互联网上所说的去做时 我收到一个 Maven 错误 Unindexed remote maven repositories found Dis
  • 使用ajax获取变量中的另一个页面的内容

    有没有办法将 javascript 变量设置为另一个 HTML 页面的内容 I tried var X http www website com home html 但它没有返回任何东西 即使它解释了这个想法 所以 有人可以告诉我该怎么做吗
  • Apps 脚本 - Web 应用程序:可见源代码/库?

    如果我将一个项目发布为公共网络应用程序 仅接收和响应几个变量 那么完整的源代码以及可能使用的库对所有用户可见 不 发布应用程序和文件共享是两件不同的事情 您可以将 Apps 脚本应用程序发布为有权访问该 Web 应用程序的 任何人 甚至匿名
  • Selenium Web-Driver Firefox 配置文件 - 禁用弹出窗口和警报窗口

    我在访问某些网站时遇到问题 当我尝试切换到其他 URL 甚至关闭浏览器时 浏览器会提示警报 一些例子 http groovshark com http www dollardays com 为了使用 Selenium 解决该警报 我需要切换
  • 如何检查变量是否不为空?

    我知道下面是 JavaScript 中检查变量是否不存在的两种方法null 但我很困惑哪个是最佳实践 我应该这样做 if myVar or if myVar null 它们并不等同 第一个将执行下面的块if声明如果myVar is trut
  • 创建特定值连续运行的计数器

    我的数据中连续的零值被非零值的运行分隔开 我想为 SOG 列中的零运行创建一个计数器 对于 SOG 中的第一个 0 序列 将 Stops 列中的计数器设置为 1 对于第二个零序列 将 Stops 设置为 2 依此类推 SOG Stops 4
  • 仅允许特定字符集的正则表达式

    我需要一些帮助来创建一个正则表达式来解析文本框中的字符串 我目前有这两个 javascript 方法 function removeIllegalCharacters word return word replace a zA Z 0 9
  • 在linux中如何加入2个文件

    我有 2 个文件 file A 和 file B 文件 file A 包含文件名 然后是空格后的代码行 该代码行可以有随机类型的字符 例如空格 等 它看起来像这样 请注意 文件中的代码行没有被 包围 这仅用于说明目的 bash 猫文件 A
  • django Rest Framework - 用于创建 m2m 关系的序列化器

    我在用django restframework对于我的 API 我创建了一个序列化器 它应该列出我的对象并且应该能够创建它们 我有一个Contact实体和Product 之间有一个标准的m2mlikes 这是我的模型 class Conta
  • 在传播缓存行时,内存控制器如何保证原子的内存顺序?

    我目前正在深入研究std atomics和C 内存模型 真正对我的思维模型有帮助的是 CPU 的存储和加载缓冲区的概念 它基本上是一个 fifo 队列 用于存储必须写入 L1 缓存或从 L1 缓存读取的数据 至少在英特尔架构中存在 据我所知
  • 如果用户在显示通知时尝试授予权限,则会出现 Android“检测到屏幕覆盖”消息

    我在 Nexus 6 上安装了 Android Marshmallow 我正在尝试解决以下问题 如果用户在显示通知时尝试授予权限 则会显示 检测到屏幕覆盖 消息 并且请求权限对话框消失 当然 应用程序不会获得请求的权限 查看截图 我尝试通过
  • Apache Beam 管道中的连续状态

    我正在为数据流运行器开发光束管道 我的用例中需要以下功能 从 Kafka 主题读取输入事件 每个Kafka消息值都派生 userID Event pair For each userID I need to maintain a profi
  • sphinx 可以忽略 python 文档字符串中的某些标签吗?

    我正在使用 sphinx 记录我的项目 并使用 sphinxcontrib napoleon 扩展 它允许我使用谷歌风格的文档字符串 这是我的项目中的一个函数 def nn normalized weight normweight fn q
  • 如何将十六进制字符串转换为十进制?

    如果您能告诉我如何转换十六进制字母 我将不胜感激NSString e g 50A6C2 使用 Objective C 转换为小数 提前致谢 最简单的方法是使用NS扫描仪 具体方法scanHexInt or scanHexLongLong 另
  • 如何从晨星上抓取数据

    所以我对网络抓取世界还是个新手 到目前为止我只真正使用 beautifulsoup 从网站上抓取文本和图像 我想我应该尝试从图表上刮掉一些数据点来测试我的理解 但我对此有点困惑graph 在检查了我想要提取的数据的元素后 我看到了这一点 s
  • 如何使用 jQuery 单击事件基于 JSON 查询异步更改 href 值

    我正在使用bit ly 网址缩短服务缩短发送到 在 Twitter 上分享 功能的某些 URL 我想仅在用户实际按下共享按钮时加载 bit ly url 由于 bit ly 的最多 5 个并行请求限制 Bit ly 的 REST API返回
  • SQL Server ISDATE() 函数 - 有人能解释一下吗?

    因此 我查看了 SQL Server 中 ISDATE 函数的文档 并在示例中看到了这一点 SET DATEFORMAT mdy SELECT ISDATE 15 04 2008 Returns 0 SET DATEFORMAT mdy S
  • C# - 关键字使用 virtual+override 与 new

    在基类型中声明方法有什么区别 virtual 然后使用 在子类型中覆盖它override 关键字而不是简单地使用 new 子类型中声明匹配方法时的关键字 我总是发现这样的事情用图片更容易理解 再次 采用约瑟夫 戴格尔的代码 public c