偶遇扩展方法 this
昨天在公司的代码中看到一个有意思的东西,就是方法的参数前加上一个this,我以前没有见过,当然也没有用过,出于好奇,就打开IE浏览器进行了百度行动,这是我的一贯作风,有困难找百度,最后的百度的结果是,这是扩展方法,很神奇的东西,我现在是一个小小的菜鸟,对这个不熟悉很自然,希望各位大虾们不要笑话我,在这里我是想自我总结,希望和我一样没见过的小鸟们一起学习,这个扩展方法挺有意思的,在网上看的云里雾里的,没有一个文章能给我讲清楚,于是乎,还是通过交流学习吧,我去想我的组长请教了一下,原来这个东西是所得寺内,哈哈,下面我简单的介绍我所学的东西。
1、扩展方法是给现有类型添加一个方法;
2、扩展方法是通过 指定关键字this修饰方法的第一个参数;
3、扩展方法必须声明在静态类中;
4、扩展方法要通用对象来调用;
5、扩展方法可以带参数。
还是看看代码吧:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ThisDemo
{
class Program
{
static void Main(string[] args)
{
Operation op = new Operation();
Person p = new Person();
Console.WriteLine("普通实例方法拿到的名字:"+op.GetName(p));
Console.WriteLine("通过扩展方法拿到的年龄:"+p.GetAge().ToString());
Console.Read();
}
}
public class Person
{
public string Name = "我的名字";
public int Age = 22;
}
public class Operation
{
public string GetName(Person p)
{
return p.Name;
}
}
public static class Helper
{
public static int GetAge(this Person p)
{
return p.Age;
}
}
}
以上代码不想多解释,我看到人家介绍的比我好,我不想说得太多,如果想进一步了解,我给大家提供一个网址,大家可以学习一下。
http://www.cnblogs.com/ldp615/archive/2009/08/07/1541404.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?