您的位置:首页 > 编程语言 > C#

C# this扩展方法

2016-06-02 17:25 134 查看
本文导读:扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。
扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。

C#扩展方法第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。

C# this扩展方法实例

实例1、给string 类型增加一个Add方法,该方法的作用是给字符串增加一个字母a

C# 代码 复制

//必须是静态类才可以添加扩展方法
Static class Program


实例2、给自定义的类型增加一个扩展方法,并增加一个传递的参数

(1)、声明一个Student类,它包含了两个方法StuInfo,getStuInfo

C# 代码 复制

public class Student


(2)、声明一个名为ExtensionStudentInfo的静态类,注意必须为静态

这个类的作用就是包含一些我们想要扩展的方法,在此我们声明两个Student类型的扩展方法,Student类型为我们自定义的类型。

C# 代码 复制

public static class ExtensionStudentInfo


(3)、使用自定义类的扩展方法,注意必须要用对象来调用扩展方法

C# 代码 复制

static void Main(string[] args)


实例3、为string扩展一个验证邮件类

(1)、扩展方法

C# 代码 复制

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Text.RegularExpressions;

//声明扩展方法的步骤:类必须是static,方法是static,

//第一个参数是被扩展的对象,前面标注this。

//使用扩展方法的时候必须保证扩展方法类已经在当前代码中using

namespace 扩展方法


(2)、使用方法

C# 代码 复制

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace 扩展方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: