C#中的扩展方法

当我们想为一个类增加一个方法,但该类是系统提供的类,无法修改其源代码;且该类是一个密封类,无法继承它;或者是其他设计原因,我们无法通过修改或继承来为该类添加方法时,我们就可以使用扩展方法

在如今的开发中,扩展方法是一种特别有用的工具,事实上,几乎整个LINQ库都是通过扩展方法来实现的。

下面我随便举一个例子,比如我现在要给Form类添加一个方法:

//首先要声明一个类,该类必须声明为“static”,命名一般为“Extend+目标类名”
public static class ExtendForm
{
    //声明我们想要添加的方法,该方法必须声明为“public static”
    //方法的参数必须包含关键字this作为它的第一个参数类型,并在后面跟上它扩展的类的名称
    public static void Print(this Form myForm) 
    {
        Console.WriteLine("我是Form类的对象");
    }
}

//测试:
class Program
{
    static void Main(string[] args)
    {
        Form myForm = new Form();
        myForm.Print();
    }
}

//运行结果:
我是Form类的对象

从扩展方法的参数可以看出,我们要扩展的类不能是静态类,因为静态类无法拥有实例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值