C#里怎么样使用new修饰符来让类智能选择基类函数还是派生类函数?

news2024/12/1 18:44:34

C#里怎么样使用new修饰符来让类智能选择基类函数还是派生类函数?


在C#里有一个特殊的用法,就是在创建与基类相同的函数时,
如果使用一个new修饰符,就会导致它会根据变量的类型而选择不同的函数运行。
这是一个比较特殊的使用方法,一般情况下,不建议这样使用。
除非有特殊的领域。

使用例子演示如下:
 

/*
 *  C# Program to Demonstrate New modifier
 */
using System;
 
class TEST
{
    public void func()
    {
        Console.WriteLine("TEST.func");
    }
}
 
class TEST1 : TEST
{
    public new void func()
    {
        Console.WriteLine("TEST1.func");
    }
}
 
class Program
{
    static void Main()
    {
        TEST ref1 = new TEST(); 
        TEST ref2 = new TEST1();
        TEST1 ref3 = new TEST1();
 
        ref1.func();
        ref2.func();
        ref3.func();
        Console.Read();
    }
}

输出如下:

Enter a Number : 25
TEST.func
TEST.func
TEST1.func

在这里特别要注意

TEST ref2 = new TEST1();

这行代码的运行输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2251308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Artec Leo:航海设备维护的便携式3D扫描利器【沪敖3D】

挑战:海军服务提供商USP Maritime需要CAD数据来执行维修和改装任务,特别是在偏远地区的任务,以及原始设计丢失的情况下。 解决方案:Artec Leo, Artec Studio, Autodesk Inventor 效果:高精度船舶组件和船坞机械模型&…

复杂网络(三)

一、几种常见的中心性指标 1.1 度中心性 度中心性分为节点度中心性和网络度中心性。前者指的是节点在其与之直接相连的邻居节点当中的中心程度,二后者则侧重节点在整个网络的中心程度,表征的是整个网络的集中或集权程度,即整个网络围绕一个…

蓝桥杯嵌入式入门指南-UART【7】

在all.c定义缓存变量 char uart_tx[50];//uart缓冲区 char uart_rx[50];//uart缓冲区USRT发送(使用strlen时需要在all.h添加string.h) sprintf(uart_tx ," PB15:%.4f V \r\n ",adc_data_PB15);HAL_UART_Transmit(&huart1,(uint8_t *)uart_tx,strlen(uart_tx)…

docker 在ubuntu系统安装,以及常用命令,配置阿里云镜像仓库,搭建本地仓库等

1.docker安装 1.1 先检查ubuntu系统有没有安装过docker 使用 docker -v 命令 如果有请先卸载旧版本,如果没有直接安装命令如下: 1.1.0 首先,确保你的系统包是最新的: 如果是root 权限下面命令的sudo可以去掉 sudo apt-get upda…

IOS ARKit进行图像识别

先讲一下基础控涧,资源的话可以留言,抽空我把它传到GitHub上,这里没写收积分,竟然充值才能下载,我下载也要充值,牛! ARSCNView 可以理解画布或者场景 1 配置 ARWorldTrackingConfiguration AR追…

CSS笔记(二)类名复用

这里我通过两张不同位置的卡片来实现效果 代码 <!DOCTYPE html> <html><head><style>/*设置画布*/body{/* 方便排列与对齐*/display: flex; /*画布布满整个窗口*/height: 100vh;/*水平居中*/justify-content: center;/*垂直居中*/align-items: cente…

远程协助软件Todesk免费版有什么限制

大名鼎鼎的远程todesk也开始出限制了&#xff0c;国内远程协助一直是向日葵一家独大&#xff0c;todesk起来以后慢慢占领了部分市场&#xff0c;随用户越来越多&#xff0c;其服务器也开始不堪重负了&#xff0c;于2024年的6月发了公告&#xff0c;出告了限制发表的措施具体如下…

【力扣热题100】[Java版] 刷题笔记-3. 无重复字符的最长子串

题目:3. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 解题思路 根据题目&#xff0c;只需要返回无重复字符串的最长子串的长度&#xff0c;所以我们不需要知道知道字符串内容是什么&#xff0c;在整个字符串 s 中&…

【03】Selenium+Python 八种定位元素方法

操作元素&#xff0c;需要先查找定位到对应的元素。 查找单个元素&#xff1a;driver.find_element() 返回是一个web element 对象 查找多个元素&#xff1a;driver.find_elements() 返回是一个list对象 By 是 Selenium 中一个非常重要的类&#xff0c;用于定位网页元素。 使…

【文献阅读】自动化构音障碍严重程度分类:声学特征与深度学习技术的研究

自动化构音障碍严重程度分类:声学特征与深度学习技术的研究 文章目录 自动化构音障碍严重程度分类:声学特征与深度学习技术的研究思维导图摘要I. 引言A. 动机与相关工作II. 数据库III. 实验设计A. 分析 MFCC 和 CQCCB. 分析语言障碍特定特征C. 分析 i-向量IV. 特征设计V. 分类…

设计模式 外观模式 门面模式

结构性模式-外观模式 门面模式 适用场景&#xff1a;如果你需要一个指向复杂子系统的直接接口&#xff0c; 且该接口的功能有限&#xff0c; 则可以使用外观模式。 不用关心后面的查询具体操作 /*** 聚合查询接口*/ RestController RequestMapping("/search") Slf…

【DB】根据某字段生成序号

如下图所示&#xff1a;根据RCV_ORD_NUM,生成明细行号&#xff0c;当RCV_ORD_NUM相同时&#xff0c;序号自增&#xff0c;不同时&#xff0c;从1开始并始终保持四位字符串 直接更新的方式 SET i : 0, now_region_id : NULL; UPDATE tqt_pl_prod.t_receipt_order_line l1 JOIN …

STM32的CAN波特率计算

公式&#xff1a; CAN波特率 APB总线频率 / &#xff08;BRP分频器 1&#xff09;/ (SWJ BS1 BS2) SWJ一般为1。 例如STM32F407的&#xff0c;CAN1和CAN2都在在APB1下&#xff0c;频率是42000000 如果想配置成1M波特率&#xff0c;则计算公式为&#xff1a;

【算法day4】链表:应用拓展与快慢指针

题目引用 两两交换链表节点删除链表的倒数第n个节点链表相交环形链表 1.两两交换链表节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&am…

电子应用设计方案-33:智能AI投影仪系统方案设计

智能 AI 投影仪系统方案设计 一、引言 随着科技的不断进步&#xff0c;投影仪在家庭娱乐、商务办公和教育培训等领域的应用越来越广泛。智能 AI 投影仪作为一种创新的投影设备&#xff0c;结合了人工智能技术&#xff0c;为用户带来更便捷、智能和个性化的使用体验。 二、系统…

Python语法基础(五)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 首先&#xff0c;我们需要明白一句话&#xff0c;在Python中&#xff0c;一切都是对象 单片机&#xff0c;嵌入式都是面向过程的 面向对象有封装&#xff0c;继承&#xff0c;多态…

pip install causal-conv1d==1.1.1报错

Building wheels for collected packages: causal-conv1d Building wheel for causal-conv1d (setup.py) ... error error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [8 lines of output]…

Xcode15(iOS17.4)打包的项目在 iOS12 系统上启动崩溃

0x00 启动崩溃 崩溃日志&#xff0c;只有 2 行&#xff0c;看不出啥来。 0x01 默认配置 由于我开发时&#xff0c;使用的 Xcode 14.1&#xff0c;打包在另外一台电脑 Xcode 15.3 Xcode 14.1 Build Settings -> Asset Catalog Compliter - Options Xcode 15.3 Build S…

14 —— Webpack解析别名

import {checkPhone, checkCode} from ../src/utils/check.js 这么使用相对路径不安全 —— 在webpack.config.js中配置解析别名来代表src绝对路径

SystemUI 下拉框 Build 版本信息去掉

需求及场景 去掉SystemUI 下拉框 Build 版本信息 如下图所示&#xff1a;去掉 12 &#xff08;SP1A.201812.016) 了解 去掉之前我们先了解它是个什么东西:其实就是一个Build RTM 信息显示 Android_12_build_SP1A.210812.016 修改文件 /frameworks/base/packages/Syste…