C#中的拓展方法

拓展方法是为现有非静态变量类型添加的自定义方法,其仅能被写在静态类中,以静态方法呈现。拓展方法允许添加参数,当为某个变量添加的拓展方法与变量内部本身的成员方法重名时,优先调用内部的成员方法,但拓展方法之间是允许重载的。

语法为:

访问修饰符 staic 返回的变量类型 拓展方法名(this 需要拓展的变量名 自定义名,参数类型 参数名1,......)

{

具体逻辑

}

cs 复制代码
using System;
namespace ConsoleApp1
{
    static class Tools 
    {
        //为int变量类型拓展方法
        public static void SpeakValue(this int value,int value2) 
        {
            Console.WriteLine("拓展方法" + value);
            Console.WriteLine("参数1" + value2);
        }
        //为自定义的Test类拓展方法
        public static void SpeakTest(this Test t) 
        {
            Console.WriteLine("自定义类的拓展方法");
        }
    }
    class Test 
    {
        public void Func1() 
        {
            Console.WriteLine("测试方法1");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            int i = 10;
            i.SpeakValue(6);
            Test t = new Test();
            t.SpeakTest();
        }
    }
}
相关推荐
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹1 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
伞伞悦读1 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车1 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁1 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
kybs19911 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
孙启超1 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int1 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger1 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读1 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json