C#3.0中新特性之扩展方法介绍应用示例
来源:互联网 发布:正规网络招聘 编辑:程序博客网 时间:2024/06/11 20:51
以下是引用片段:
//Demo--1
//扩展基本类型
namespace TestExtensionMethods
{
// 必须建一个静态类,用来包含要添加的扩展方法
public static class Extensions
{
//要添加的扩展方法必须为一个静态方法
//此方法参数列表必须以this开始 第二个即为要扩展的数据类型,在这里就是要扩展string类型
//第三个就无所谓了,就是一对象名,名字随便,符合命名规则即可
//综合来讲,此方法就是要给string类型添加一个叫TestMethod的方法,此方法返回一个int型的值,即返回调用此方法对象的长度。
public static int TestMethod(this string s)
{
return s.Length;
}
}
//测试扩展方法类
class Program
{
static void Main(string[] args)
{
string str = "Hello Extension Methods";
//调用扩展方法,必须用对象来调用
int len = str.TestMethod();
Console.WriteLine(len);
}
}
}
//Demo--2
//扩展自定义类型,同时展示了扩展方法带参数情况,以及方法重载
namespace TestExtendMethod
{
public class Student
{
public string Description()
{
return "Student.............";
}
public string Description(string name)
{
return "the student’s name is "+name;
}
}
// 必须建一个静态类,用来包含要添加的扩展方法
public static class Extensions
{
//要添加的扩展方法必须为一个静态方法
//此方法参数列表必须以this开始 第二个即为要扩展的数据类型,在这里就是要扩展Student类型
//第三个就无所谓了,就是一对象名,名字随便,符合命名规则即可
//综合来讲,此方法就是要给Student类型添加一个叫TestMethod的方法,此方法返回一个string型的值
public static string TestMethod(this Student s)
{
return s.Description();
}
//要添加的扩展方法必须为一个静态方法
//此方法参数列表第一个参数表示要扩展哪一个类,第二个参数才表示此扩展方法的真正参数
//综合来讲,此方法就是要给Student类型添加一个叫TestMethod的方法,此方法带有一个string类型的参数,并返回一个string型的值
public static string TestMethod(this Student s,string name)
{
return s.Description(name);
}
}
//测试扩展方法类
class Program
{
static void Main(string[] args)
{
Student stu = new Student();
//调用扩展方法,必须用对象来调用
string mes = stu.TestMethod();
Console.WriteLine(mes);
//调用带参数的扩展方法,只要传第二个参数就可以了
//因为他的第一个参数其实只是为了表明是扩展哪个数据类型
mes = stu.TestMethod("李沉舟");
Console.WriteLine(mes);
}
}
}
- C#3.0中新特性之扩展方法介绍应用示例
- C#3.0新特性之扩展方法介绍
- C#3.0新特性之扩展方法介绍
- C#3.0新特性之扩展方法介绍
- C# 3.0新特性之扩展方法
- C# 3.0新特性之扩展方法
- C# 3.0新特性之扩展方法
- c# 3.0新特性之使用扩展方法
- C#3.0新特性:扩展方法初探
- C# 3.0新特性之扩展函数
- C#3.0特性之---扩展方法
- C#3.0新特性----扩展方法(Extension Methods)初探
- 关于C#3.0新特性以及扩展方法!
- C# 3.0新特性之扩展函数(相关文章)
- java新特性之方法重载中可变参数应用
- C#3.5语言新特性(四)-扩展方法
- C#特性-扩展方法
- 理解C# 3.0新特性之Extension方法浅议
- Java集合类自己总结
- vc更改对话框标题
- Java学习资源汇总
- oracle的正则表达式(regular expression)
- 老站长传授网站防黑经验
- C#3.0中新特性之扩展方法介绍应用示例
- 在MFC应用中深入定制WebBrowser控件(转)
- javadoc时候乱码-编码 GBK 的不可映射字符
- 中小企业信息化(一)——何为信息化
- 写代码要注意的细节
- MySQL5添加外键约束错误 (Error Code : 1005)
- static this super final 关键字
- [Python]为非程序员准备的简洁Python语言教材
- Hibernate的annotation点滴 一