拓展方法知识点

拓展方法的基本概念

概念 

为现有非静态变量类型添加新方法。

作用

1.提升程序拓展性。

2.不需要再对象中重新写方法。

3.不需要继承来添加方法。

4.为别人封装的类型写额外的方法。

特点

1.一定是写在静态类中。

2.一定是个静态函数。

3.第一个参数为拓展目标。

4.第一个参数用this修饰。

基本语法

访问修饰符 static 返回值 函数名(this 拓展类名 参数名, 参数类型 参数名,参数类型 参数名....)

实例

static class Tools
{//为int拓展了一个成员方法//成员方法 是需要 实例化对象后 才 能使用的//value 代表 使用该方法的 实例化对象public static void SpeakValue(this int value){//拓展的方法 的逻辑Console.WriteLine("唐老狮为int拓展的方法" + value);}public static void SpeakStringInfo(this string str, string str2, string str3){Console.WriteLine("唐老狮为string拓展的方法");Console.WriteLine("调用方法的对象" + str);Console.WriteLine("传的参数" + str2 + str3);}public static void Fun3(this Test t){Console.WriteLine("为test拓展的方法");}}

为自定义的类型添加拓展方法

class Test
{public int i = 10;public void Fun1(){Console.WriteLine("123");}public void Fun2(){Console.WriteLine("456");}
}

使用

 int i = 10;i.SpeakValue();string str = "000";str.SpeakStringInfo("李华", "111");Test t = new Test();t.Fun2();

总结:

概念:为现有的非静态变量类型添加方法。

作用:

提升程序拓展性

不需要再在对象中重新写方法

不需要继承来添加方法

为别人封装的类型写额外的方法

特点:

静态类中的静态方法

第一个参数 代表拓展的目标

第一个参数前面一定要加this

注意:

可以有返回值和n个参数。

根据需求而定

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

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

相关文章

Bridging nonnull in Objective-C to Swift: Is It Safe?

Bridging nonnull in Objective-C to Swift: Is It Safe? In the world of iOS development, bridging between Objective-C and Swift is a common practice, especially for legacy codebases (遗留代码库) or when integrating (集成) third-party libraries. One importa…

重磅更新-UniApp自定义字体可视化设计

重磅更新-UniApp自定义字体可视化设计。 DIY可视化为了适配不同APP需要,支持用户自定义字体,自定义字体后,设计出来的界面更多样化,不再是单一字体效果。用户可以使用第三方字体加入设计,在设计的时候选择上自己的字体…

简过网:三支一扶有编制吗?考上三支一扶就是入编了吗?

小编看到很多朋友在咨询三支一扶的相关问题,比如三支一扶有没有编制?今天,针对这个问题咱们一块来了解一下吧。 三支一扶是没有编制的,既没有事业编制,也不是公务员编制 什么是三支一扶? 三支一扶是指大…

AI副业赚钱攻略:掌握数字时代的机会

前言 最近国产大模型纷纷上线,飞入寻常百姓家。AI副业正成为许多人寻找额外收入的途径。无论您是想提高家庭收入还是寻求职业发展,这里有一个变现,帮助您掌握AI兼职副业的机会。 1. 了解AI的基础知识 在开始之前,了解AI的基础…

一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计

大家好,今天给大家分享的是一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计。 Remark42是一个自托管的、轻量级的、简单的(但功能强大的)评论引擎,它不会监视用户。它可以嵌入到博客、文章或任何其他读者…

Spark SQL----Binary二进制文件数据源

Spark SQL----Binary二进制文件数据源 自Spark 3.0以来,Spark支持二进制文件数据源,Spark读取二进制文件,并将每个文件转换为包含文件原始内容和元数据的单个记录。它生成一个DataFrame,其中包含以下列以及可能的分区列&#xff1…

Linux端口设置ip白名单

一、 Linux 22端口设置ip白名单 在Linux系统中,如果您想要限制只有特定的IP地址能够访问端口22(通常是SSH服务的端口),您可以使用iptables防火墙来实现。以下是一个基本的示例,展示了如何设置端口22的IP白名单&#x…

kafka-Stream详解篇(附案例)

文章目录 Kafka Stream 概述Kafka Stream 概念Kafka Stream 数据结构入门案例一需求描述与分析配置KafkaStream定义处理流程声明Topic接收处理结果发送消息测试 入门案例二需求描述与分析定义处理流程接收处理结果声明Topic 更多相关内容可查看 Kafka Stream 概述 Kafka Strea…

探索Anaconda Cloud:Conda的云端宝库

探索Anaconda Cloud:Conda的云端宝库 引言 Anaconda Cloud是一个托管服务,由Anaconda, Inc.提供,用于分享和发现公共或私有的Conda包。它为数据科学和机器学习社区提供了一个集中的平台,使得用户可以轻松地上传和下载Conda环境、…

深入理解linux shell 中的exec内置命令ubuntu bash

概览 每当我们在Bash shell 中运行任何命令时,默认情况下都会创建一个子 shell,并生成(分叉)一个新的子进程来执行该命令。但是,当使用 exec时,exec 后面的命令将替换当前 shell。这意味着不会创建任何子 …

Graalvm配置文件与Feature和Substitute机制介绍

1. 配置文件 1.1 动态代码配置文件 对于动态代码,需要通过指定的json文件来描述其metadata,这样GraalVM才能正确的编译和优化代码。如下类型 反射,配置文件名:reflect-config.json动态代理, 配置文件名:…

【高中数学之基本不等式】已知:x,y皆为正实数且x+3y=5xy,求3x+4y的最小值?

解:此题若使用“化二为一”法,会发现分母中出现了5x-3或是5y-1这样的式子,它可能导致负数的出现,已经违反了基本不等式中a,b皆大于零的应用条件。 此时应该迷途知返,及时易辙改弦。 此题适用“乘一法”,这…

MyBatis(12)MyBatis 映射文件中的 resultMap

MyBatis 的 resultMap 是一种高级映射策略,用于处理复杂的SQL查询结果和Java对象之间的映射关系。resultMap 提供了比 auto-mapping 更为灵活的映射方式,它允许开发者显式指定数据库列和Java对象属性之间的映射关系,甚至可以处理复杂的数据结…

【C++11 之单例模式线程安全原理+案例】及旧版本互斥锁线程安全案例

在C11及之后的版本中,当函数返回局部静态变量时,该变量的初始化是线程安全的。 浅层原理 这是因为C11标准引入了“魔术静态局部变量”(Magic Static Locals)的概念,它确保了在多线程环境中,局部静态变量的…

第1章_搭建开发环境

文章目录 第1章 搭建开发环境1.1开发套件硬件接口资源介绍1.2资料下载1.3安装Keil MDK1.3.1**软件下载**1.3.2**软件安装**1.3.3 PACK 安装 1.4 安装 STM32CubeMX1.5 安装 STM32CubeProgrammer1.6 安装 ST-Link 驱动1.7 安装 CH340 驱动 第1章 搭建开发环境 1.1开发套件硬件接…

Dijkstra算法C代码

一个带权图n个点m条边,求起点到终点的最短距离 先定义一个邻接矩阵graph,graph[i][j]表示从i到j的距离,i到j没有路就表示为无穷 然后定义一个visit数组,visit[i]表示i结点是否被访问 然后定义一个dist数组,dist[i]表…

Redis基础教程(一):redis配置

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

星光云720全景VR系统源码

星光云720全景VR系统源码 系统体验地址项目介绍JDK版本后端主要依赖前端框架前端node 版本用户端框架介绍技术选型依赖全景内容简介系统图片部分功能截图系统体验地址 系统体验地址 VR全景系统体验地址 账号:18175760278 密码:12345678 项目介绍 JDK版…

AudioLM: 音频生成模型

AudioLM: 音频生成模型 音频生成模型是一种利用人工智能技术生成声音或音频内容的模型。它利用深度学习技术,尤其是生成对抗网络(GANs)或变分自编码器(VAEs),结合声音合成和信号处理技术,从输入的文本、图像或其他形式的数据中生成音频。这些模型广泛应用于语音助手、游…

图鸟模板-官网:基于Vue 3的前端技术探索与实践

摘要: 随着Web技术的不断发展,前端开发已经从简单的页面展示向功能丰富、交互体验优良的方向发展。Vue.js作为一款轻量级且功能强大的前端框架,自推出以来就受到了广泛的关注和应用。特别是Vue 3的发布,更是为前端开发带来了诸多新…