代码改变世界

扩展方法

  贤达  阅读(255)  评论(0编辑  收藏  举报

     我们知道,一但一个类型(例如:类、接口、结构、枚举或者委托)被定义然后编译进一个.net程序集后,它的定义工作就应该说是结束了。

为该类型添加成员。更新成员或者删除成员,唯一的方法就是修改类型的定义代码。然后重新编译更新程序集。

(更高级的方法,例如使用命名空间system.Reflection.Emit下的类对已编译的类型做运行时动态构造)

    在C#3.0中,可以把方法定义成为扩展方法

扩展方法允许现存已编译的方法类型(例如:类、接口、结构、枚举或者委托)和当前即将编译的类型在不需要被直接更接更新的情况下获得功能上的扩展。

 

扩展方法。

     必须氢方法定义在静态类中(因此第一个扩展方法也必须是静态的)

     护展方法都需要使用关键字this对第一个调用的参数(并仅对第一个参数)

     第一个扩展方法只可以被内存中正解的实例调用。或都通过所处一静态类被调用

 

复制代码
复制代码
代码

    
//必须为static类
    static class Program
    {
        
static void Main(string[] args)
        {
            Console.WriteLine(
"  fun with Extension Methods ");
            
int myInt = 123;
            Console.WriteLine(myInt.reverseDigits());
           
        }
      
//本方法任何 [整数] 返回倒置,
        public static int reverseDigits(this int i) 
        {
            
//把int转成字符串,再转成单了字符数组
            char[] di = i.ToString().ToCharArray();
            Array.Reverse(di);
            
string newdigits = new string(di);
            
return int.Parse(newdigits);
        }
    }
复制代码

 

 
复制代码
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示