C#扩展方法的应用
来源:互联网 发布:qq游戏大厅 mac 编辑:程序博客网 时间:2024/04/29 01:08
C#扩展方法用于扩展指定类型的功能。扩展方法可以单独定义在外部程序集中。
本例中首先建立一个外部类项目ExtMethodDefine,定义一个类Tool,而且此类必须是静态的非泛型的。代码如下:
然后定义一个主程序项目ExtMethod,类名为ExtMethod,因为要调用扩展方法,添加刚才建立的外部程序集ExtMethodDefine.dll,导入命名空间ExtMethodDefine。
运行结果为:
1、代码分析
扩展方法第一个参数代表被扩展的类型实例,必须用this修饰,在扩展方法(this Object e)里,this修饰第一个参数是object,即所有类型都可以调用这个方法,所以声明4个不同类型的变量a,b,c,d,都可以调用扩展方法DisTestObj()。
在扩展方法DisTestStr(this String e,string e2,int e3),this修饰第一个参数是string,即所有string类型都可以调用这个方法,第二个和第三个参数e2,e3才是扩展类型实例传递的第一个和第二个参数。
另外发现字符串的初值,作为this所指定的参数传递进来了。
2、定义扩展方法的方法如下所示
public static class 类名称
{
public static 返回类型 方法名称(this 被扩展类型 参数,其他参数)
{
方法体
}
}
3、总结扩展方法的特殊性主要有以下几点
1)、扩展方法所属类必须是静态非泛型,扩展方法也是静态方法
2)、扩展方法的第1个参数为被扩展的类型实例,而且必须用this修饰
3)、扩展方法从第2个参数开始,才是扩展类型实例传递的参数列表,第2个和第3个参数才是扩展类型实例传递的第1个和第2个参数,以此类推
4)、被扩展类型实例,像调用类型内部定义的方法一样来使用扩展方法
5)、扩展方法表面上像调用类型内部定义的方法一样,本质仍然是静态方法的调用,只是被扩展的类型成为了第1个参数。如:例子中x.DisTestObj();实际执行代码Tool.DisTestObj(string x)
- C#扩展方法的应用
- C#的扩展方法应用
- C# Linq扩展方法应用
- C#的扩展方法
- c#的扩展方法
- C#的扩展方法
- 不可不知的C#基础应用+--+Extension+扩展方法
- C# -- 扩展方法的应用(Extension Methods)
- Unity3d的C#扩展方法Extension methods应用吧
- C#定义扩展类的应用及方法
- c#扩展方法奇思妙:Enumerable.Cast应用
- C# 扩展方法实际应用整理
- C# 扩展方法应用一:中文处理
- C# 扩展方法应用二:文件操作
- C# 扩展方法应用三:字符串处理
- C# 类的扩展方法
- C# 扩展类的方法
- c# 扩展方法的理解
- 评论:中文域名是一场彻头彻尾的的骗局
- Java String 处理函数
- 如何用Powerdesigner的PDM生成数据库及逆向生成
- Thrift基本使用
- linux解决xhost: unable to open display
- C#扩展方法的应用
- sfsdf
- Linux SSH命令大全
- JSP+SQL SERVER实现分页
- sql 触发器
- sql优化 34条
- Eclipse平台架构技术分析
- 飞思卡尔 HCS12(x) memory map解说(1)
- DB2常用命令整理