(三)CSharp-扩展方法

news/2024/12/22 14:15:32/

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

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

最常见的是在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体验

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

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

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