专栏首页码农阿宇C# 扩展方法 白话总结

C# 扩展方法 白话总结

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

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

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

  public static int IntAdd5(int i)
        {
            return i + 5;
        }

用的时候应该是这么用的

 static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine(IntAdd5(i));
        }

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

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

  public static class  KuoZhan
    {
        public static int IntAdd5(this int i)
        {
            return i + 5;
        }
    }

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

用的话是这么用的。

   static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine(i.IntAdd5());
        }

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

简单说到这里哦,谢谢!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C# 9.0新特性

    看到标题,是不是认为我把标题写错了?是的,C# 8.0还未正式发布,在官网它的最新版本还是Preview 5,通往C#9的漫长道路却已经开始.前写天收到了活跃在...

    码农阿宇
  • 聊一聊数据库中的锁

    数据库中有一张叫后宫佳丽的表,每天都有几百万新的小姐姐插到表中,光阴荏苒,夜以继日,日久生情,时间长了,表中就有了几十亿的小姐姐数据,看到几十亿的小姐姐,每到晚...

    码农阿宇
  • 基于Win10极简SonarQube C#代码质量分析

    博客有些好些时间未更新了,这几个月的时间里,离开了实习的公司、大学毕了业、来了新公司、转了户口,有点忙,最近总算稍微闲下来了,打算重新拾起博客,坚持写下去。

    码农阿宇
  • C++上机考试试题解析

    慕白
  • PDD面试官问我如何上楼,有点懵圈

    You are climbing a stair case. It takes n steps to reach to the top.

    三哥
  • ucgui在嵌入式linux下的移植

    前几天在研究minigui,照着官方的步骤编译,竟然一堆错,不是缺这库,就是缺那库。好不容易快到了最后一步,竟然再链接时告诉我用的64位系统不兼容32位的min...

    特立独行的猫a
  • Java StringBuilder和StringBuffer理解

    首先,由于String是final类,所以其一旦赋值是不可修改的,同时其自带方法,类似与substring,replace,等,都是对原String拷贝后的再修...

    黑白格
  • 创造新世界

    众所周知计算机代码底层计算都是0和1的计算,牛牛知道这点之后就想使用0和1创造一个新世界!牛牛现在手里有n个0和m个1,给出牛牛可以创造的x种物品,每种物品都由...

    AI那点小事
  • (转)Java中的System类

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。

    哲洛不闹
  • LeetCode75.颜色分类

     这道题两种做法,一种是用计数排序,因为告诉了你只有3种数字,所以直接创建一个长度为3的数组arr,然后遍历一遍原数组,每出现一次某个数,arr对应位置的值...

    mathor

扫码关注云+社区

领取腾讯云代金券