博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#编程(二十一)----------扩展方法
阅读量:6906 次
发布时间:2019-06-27

本文共 635 字,大约阅读时间需要 2 分钟。

C#中的扩展方法

有许多扩展类的方式.如果有类的源代码,继承就是给类添加功能的好方法.但是如果没有源代码,怎么办?吃屎可以使用扩展方法,它允许改变一个类,但不需要该类的源代码.扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中.例如我有一个Money,不知道源代码,需要一个AddToAmount(decimal amountToAdd).

我们可以这么做:

namespace Wrox

{

public static class MoneyExtension

{

public static void AddToAmount(this Money money,decimal amountToAdd)

{

money.Amount+=amountToAdd;

}

}

}

注意AddToAmount()方法的参数.对于扩展方法,第一个参数是要扩展的类型,它放在this关键字的后面.告诉编译器,这个方法是Money类型的一部分.在此例中,Money是要扩展的类型.在扩展方法中,可以访问所扩展类型的所有的共有方法和属性.

在主程序中,AddToAmount()方法看起来像是拧一个方法.它没有显示第一个参数,也不能对它进行任何处理.要使用新方法,与使用其他方法一样:

Monet cash=new Money();

cash.AddToAmount(100m);

如果扩展方法与类中的某个方法同名,就从来不会调用扩展方法.类中已有的任何实例方法优先.

转载地址:http://wfgdl.baihongyu.com/

你可能感兴趣的文章
css3 Gradients 线性渐变
查看>>
公安部科信局及各省(市)领导莅临品高参观指导
查看>>
富士通加入AI竞赛
查看>>
解析广泛应用于NLP的自注意力机制(附论文、源码)
查看>>
[转载]最锋利的Visual Studio Web开发工具扩展:Web Essentials详解
查看>>
联想和Wikitude联合推出AR云平台,为工业提供一站式解决方案
查看>>
Veeam和Nutanix加速数字化转型,致力企业级业务永续
查看>>
不要在界面上对数据库进行改动
查看>>
自动驾驶领域AI芯片新势力盘点
查看>>
[windows]快速从ftp下载最新软件包的批处理脚本
查看>>
Linux 信号signal处理函数
查看>>
Cisco 2900xl/3500xl/2950/3550密码恢复流程
查看>>
c++ 多线程写日志的一个很实用的日志类源码(支持 c++ builder)
查看>>
推荐系统设计
查看>>
Nginx https证书部署
查看>>
java的NIO和AIO
查看>>
Struts.xml中Action的method与路径的三种匹配方法
查看>>
LoadRunner参数化取值与连接数据库
查看>>
hdu 1247 Hat’s Words(字典树)
查看>>
Vshpere client登录VC报错
查看>>