(三)CSharp-扩展方法

news/2024/2/27 12:31:10

扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。

并不能保证拥有一个类型的源码,也并不能保证这个类型可以让我们继承.

最常见的是在Linq中使用

例子:

    class Program{static void Main(string[] args){Person s = new Person();s.SayHi();s.SayHi("hihi");Console.ReadKey();}}public class Person{public int Id { get; set; }public string Name { get; set; }public void say(){Console.WriteLine("你好呀!");}}public static class PersonExt{public static void SayHi(this Person p){Console.WriteLine("SayHi!");}public static void SayHi(this Person p,string appendStr){Console.WriteLine("SayHi!" + appendStr);}}

1.如果扩展方法与该类型中定义的方法具有相同的签名,则扩展方法永远不会被调用。

2.针对已实现的类库,不应为了避免程序集的版本号递增而使用扩展方法。一般没有源代码,如果想对现有类进行扩展,可用扩展方法。

如果要向你拥有源代码的库中添加重要功能,应遵循适用于程序集版本控制的标准 .NET Framework 准则。

3.若要使用不同命名空间内的扩展方法,记得要加上命名空间声明(使用using),否则编译器会找不到扩展方法的类。

扩展方法的规则:
1、定义包含扩展方法的静态类,此类必须对客户端代码可见。

2、将扩展方法实现为静态方法,并且使其可见性至少与所在类的可见性相同。

3、此方法的第一个参数指定方法所操作的类型;此参数前面必须加上this修饰符。

4、在调用代码中,添加 using 指令,用于指定包含扩展方法类的命名空间。

5、和调用类型的实例方法那样调用这些方法。

6、第一个this参数不能使用out等关键字
首先我们调用这个方法的时候,编译器第一个找的地方就是实例方法,如果没有找到这个实例方法,编译器就会自动找扩展方法。通过反编译器就可以查看到一个重要的信息:[assembly:Extention]


http://www.ppmy.cn/news/248574.html

相关文章

雷柏键鼠对码程序

http://www.rapoo.com.cn/search?keyWordPair 转载于:https://www.cnblogs.com/simadi/p/11317820.html

雷柏科技2018年营业收入达4.7亿元 同比下降5.2%

【TechWeb】2月28日消息,深交所上市公司雷柏科技昨晚发布了2018年度业绩快报。报告称,雷柏科技2018年营业收入达4.7亿元,同比下降5.2%。 雷柏科技财务数据 经营业绩和财务状况情况说明 报告期内公司实现营业收入 47,381.17 万元,同…

(已解决)雷柏v500在Ubuntu系统下键位映射错误

问题 想买个机械键盘码代码,没有留意就入手了这个便宜的机械键盘. 1. 手感还可以 2. ubuntu下ctrl和alt映射到了shift键位,很伤 解决 一共解决了两次才彻底解决了这个问题 可能大家能看到一些博客传送门 但是要注意到这个是v7的 v7的 v7的!!! 最后是通过重新写入驱动解决…

usb扩展坞同时接键盘鼠标_雷柏XD200 USB-C 10口扩展坞分线转换器上市

近年来笔记本市场掀起一阵轻薄风,轻巧的机身让移动办公一族充分享受到了轻薄本带来的便利。而iPad Pro等高性能平板电脑,也受到不少轻办公、轻娱乐用户的青睐。不过为了追求轻巧,不少轻薄本取消了USB、网线、HDMI等接口,另有外设扩…

手感顺滑的平板键盘,更好用的Surface Pro伴侣,雷柏XK200S上手

对于经常需要出差或者是在户外办公的朋友来说,Surface Pro这种Windows平板是特别好用的工具,它相比笔记本体积更加轻巧,相比Android平板,则能够更好的支持常用的办公软件。雷柏XK200S针对Surface Pro做了一些定制化的设计&#xf…

usb扩展坞同时接键盘鼠标_雷柏XD200 USB-C 10口扩展坞分线转换器详解

近日,Rapoo雷柏,国产外设品牌,实力大厂上市企业,推出了XD200 USB-C 10口扩展坞分线转换器,进一步丰富了其移动办公外设产品线。XD200继承了雷柏一贯以来的高规格、高质量、高性价比,采用USB-C接口连接,拥有…

手感细腻的静音鼠标,更适合女孩使用,雷柏M650体验

平时工作学习的时候,鼠标是个必不可少的小工具,即使是很多笔记本用户,通常也更习惯使用鼠标来进行各种日常操作,并且现在很多外设品牌都特别重视女性玩家使用需要,推出了不少好看好用的鼠标产品。上个月我也收到了一款…

华为否认与雷柏科技战略合作

华为否认与雷柏科技战略合作,称只有初步意向 针对日前深圳雷柏科技发布公告称与华为合作一事,华为表示,合作的实际情况是华为为雷柏科技的工厂生产线自动化改造提供数据通讯解决方案,并非报道所说的战略合作。协议仅仅反映了初步意…

买了个新键盘,雷柏V56,也没有个说明书,只好自己写个了。

最近新买了一个键盘,雷柏v56,官方没给配说明书,但是有几个按键不太容易懂,就搜索了一下,总结如下: 首先是常见的,容易懂得几个键: 注意是每个都是组合键,即都要先按F…

【滑动窗口】487. 最大连续1的个数 II

文章目录 一、题目1、题目描述2、基础框架3、原题链接 二、解题报告1、思路分析2、时间复杂度3、代码详解 三、本题小知识 一、题目 1、题目描述 给定一个二进制数组 nums ,如果最多可以翻转一个 0 ,则返回数组中连续 1 的最大个数。 示例 1&#xff1…

测试人何去何从?2023年测试工程师突破自我,卷出测试圈...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 2023年测试行业现…

springboot启动源码分析

概述 springboot启动类 package com.ahs.ahsaccount;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class AhsAccountApplication {public static void main(Stri…

计算机无法启动硬盘损坏,电脑硬盘坏了 它显示出 系统资源不够 没法启动

故障现象:电脑在开机的时候(登录桌面之前),提示“系统资源不够,无法完成API”点击“确定”后,电脑自动重起。甚至连“安全模式”/“最后一次正确配置”也无法进入。故障原因:C盘的剩余空间过小。lsass.exe 系统错误---…

grub4dos初级教程

grub4dos初级教程 - GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛 http://cndos.fam.cx/forum/viewthread.php?tid28300&fpage1 目录 1 grub4dos初级教程-入门篇 1.1 grub简介 1.2 如何获得grub4dos最新版…

简短的计算机病毒,最简单的电脑病毒

大家知道最简单的电脑病毒是什么吗?下面就让学习啦小编教大家做一个最简单的电脑病毒吧。 最简单的电脑病毒的做法 1.控制面板->文件资源管理器选项->查看->隐藏已知文件夹类型的扩展名,如果前面勾选了就取消勾选,没有勾选就不用管。 2.新建一个文本文档,重命名为…

计算机系统的优化具体操作,从八个方面来探讨计算机操作系统的优化

内容简介:本文主要从硬盘引导、操作系统引导、载入基本操作系统、定义临时目录、定义虚拟内存盘、载入系统服务、载入自定义服务、定义GUI这八个方面来说明针对操作系统的优化。 不管您使用的是Windows也好,Linux也好,或者是Freebsd(为避免语言烦琐,以下如同时指代Linux和F…

计算机慢怎么解决6,电脑运行速度慢怎么回事 电脑运行速度慢的解决方法

通常而言,便携式电脑的打开速度要比台式电脑的打开速度要快上很多。那么台式电脑运行速度慢,一定是因为它出现了小小的问题了。一种是,我们的电脑体内有非常多的灰尘,没有被我们按时清理哦。还有最大的难题,那便是电脑…

专业英语(一) · NIIT教材中文总结系列①

专业英语(一) —— English for Excellence-Primer 文章号:[2023]001 第一章 破冰(交际交流)(Ice-break) 1.1. 介绍和短对话 打招呼 : 正 式: Morning; How do you do; 非正式: Hey,man; Hows it going; 与陌生人对话: 1. 礼貌(Always be polite); 2. 不辱骂他人(Do…

DOS命令图解教程

DOS命令图解教程 DOS 概述及入门 ——DOS简介  现在家用电脑的操作系统大多都是用的 Windows 95,但在1995年Windows 95推出以前,占统治地位的操作系统是DOS(Disk Operation System 磁盘操作系统)。 接触电脑早一点的人想必都听说过DOS的大名&#xf…
最新文章