C#温故而知新学习系列之面向对象编程—10-扩展方法
来源:互联网 发布:java api 编辑:程序博客网 时间:2024/05/21 02:28
扩展方法是你能够向现有类型和自定义类型添加方法,而无需创建新的派生类型或者以其他方式修改原始类型
扩展方法是一个特殊的静态方法,它定义在一个静态类中,但是可以在其他类型(我们要扩展的那个类)的对象上像调用实例方法那样调用,因此通过扩展方法可以在不修改一个类的前提下对一个类进行功能上的补充
创建扩展方法
扩展方法和一般静态方法定义类似,惟一的区别是在第一个参数的前面加上this关键字,同时第一个参数的类型也决定了扩展方法可以扩展的类型
格式
public static 返回类型 扩展方法名称(this 要扩展的类型sourceObj[,扩展方法参数列表])
扩展方法的特点
1:扩展方法是给现有类型添加一个方法
2:扩展方法通过指定this关键字修饰方法的第一个参数
3:扩展方法必须声明在静态类中
4:扩展方法通过对象来调用
5:扩展方法可以带参数
实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _10_ExpandMethod
{
public static class AddClass
{
//扩展现有String类型
public static string GetLower(this String str)
{
return str.ToLower();
}
//扩展自定义的Studengt类型
public static string GetName(this Student stu,string strName)
{
return strName;
}
}
//自定义的Student类型
public class Student
{
}
class Program
{
static void Main(string[] args)
{
string strURL = "HTTP://WWW.BAIDU.COM";
strURL = strURL.GetLower();
Console.WriteLine(strURL);
string strName = "小强";
Student student = new Student();
Console.WriteLine(student.GetName(strName));
Console.ReadKey();
}
}
}
运行效果图
- C#温故而知新学习系列之面向对象编程—10-扩展方法
- C#温故而知新学习系列之面向对象编程—4-方法
- C#温故而知新学习系列之面向对象编程—8-方法的重载
- C#温故而知新学习系列之面向对象编程—9-静态方法
- C#温故而知新学习系列之面向对象编程—15-对象初始化器
- C#温故而知新学习系列之面向对象编程—2-定义结构
- C#温故而知新学习系列之面向对象编程—3-类的数据成员
- C#温故而知新学习系列之面向对象编程—5-ref参数
- C#温故而知新学习系列之面向对象编程—6-out参数
- C#温故而知新学习系列之面向对象编程—7-构造函数
- C#温故而知新学习系列之面向对象编程—11-自动属性
- C#温故而知新学习系列之面向对象编程—12-属性
- C#温故而知新学习系列之面向对象编程—13-类和结构的区别是什么?
- C#温故而知新学习系列之面向对象编程—14-分布类是什么?
- C#温故而知新学习系列之面向对象编程—16-析构函数
- C#温故而知新学习系列之面向对象编程—1-定义类与创建类的对象
- C#温故而知新学习系列之面向对象编程—接口和抽象类的区别是什么?(十八)
- C#温故而知新学习系列之XML编程—5-XmlSerializer类把对象序列化为XML文档
- Oracle特殊语句
- dojo.toJson
- Oracle查看内部结构
- Oracle bash脚本编写教程
- C++通过list和template实现简单的对象池
- C#温故而知新学习系列之面向对象编程—10-扩展方法
- How to add help to Apex pages
- SOLRIS 调试工具
- C#温故而知新学习系列之面向对象编程—11-自动属性
- ArrayList的学习和对象之间比较的一些理解
- 计算机网络第五章
- 8I索引维护
- C#温故而知新学习系列之面向对象编程—12-属性
- hint