前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 扩展方法 白话总结

C# 扩展方法 白话总结

作者头像
码农阿宇
发布2018-04-18 10:49:00
5960
发布2018-04-18 10:49:00
举报
文章被收录于专栏:码农阿宇码农阿宇

我们在变成的时候时常遇到这样的问题,new了一个系统内的对象之后,我们想要对该对象有一个方法可是却点不出来,说明该对象本身没有声明该方法,可是微软又不允许我们去该对象的代码,怎么办?

在C# 3.0  微软加入了扩展方法,那么扩展方法怎么用呢?

比如我们需要在int里面 生命一个方法,返回的值是int+5,比如:

代码语言:javascript
复制
  public static int IntAdd5(int i)
        {
            return i + 5;
        }

用的时候应该是这么用的

代码语言:javascript
复制
 static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine(IntAdd5(i));
        }

确实能用,但是不完美,能不能像微软在int类型里声明的方法那样,直接i.IntAdd5()这样来用呢? 用扩展方法可以实现

用扩展方法,首先需要声明一个静态类,然后在这个静态类里面声明一个静态方法,静态方法里面的第一的位置,要this int i ,这样用的

代码语言:javascript
复制
  public static class  KuoZhan
    {
        public static int IntAdd5(this int i)
        {
            return i + 5;
        }
    }

这里的第一个不是参数,而是你想要扩展的那个类型的名称,换句话说,你想要扩展哪个类型,这里只要扩展哪个类型就行了。

用的话是这么用的。

代码语言:javascript
复制
   static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine(i.IntAdd5());
        }

没错,是直接点出来的,很爽有没有??

简单说到这里哦,谢谢!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档