c# 什么是扩展方法

官方解释

扩展方法使你能够向现有类型"添加"方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种静态方法,但可以像扩展类型上的实例方法一样进行调用。 对于用 C#、F# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中定义的方法没有明显区别。

最常见的扩展方法是 LINQ 标准查询运算符,它将查询功能添加到现有的 System.Collections.IEnumerableSystem.Collections.Generic.IEnumerable<T> 类型。 若要使用标准查询运算符,请先使用 using System.Linq 指令将它们置于范围中。 然后,任何实现了 IEnumerable<T> 的类型看起来都具有 GroupByOrderByAverage 等实例方法。 在 IEnumerable<T> 类型的实例(如 List<T>Array)后键入"dot"时,可以在 IntelliSense 语句完成中看到这些附加方法。

扩展方法定义的语法

public static 返回值类型 方法名(this 扩展的数据类型 参数名)

{

}

注意 扩展方法所在的类一定是 static 的

示例:下面是给 string 类型的增加了一个将字符串转成int不会出现异常的扩展方法

复制代码
/// <summary>
/// 字符串扩展方法
/// </summary>
public static class StringExtension
{
    /// <summary>
    /// string 转 int
    /// </summary>
    /// <param name="value"></param>
    /// <returns>转换失败返回int最小值,否则返回对应的值</returns>
    public static int ToInt(this string value)
    {
        int val = int.MinValue;
        int.TryParse(value, out val);
        return val;
    }
}

调用

复制代码
int age = "20".ToInt();

注意 如果发现调用不了应该是没有引用扩展方法的命名空间

相关推荐
互联网底层民工11 分钟前
异步 / 多线程并发(高频八股 · 详解版)
c#
罗超驿27 分钟前
6.Java LinkedList深度解析:从链表原理到源码实践
java·开发语言·链表
2501_9481069130 分钟前
计算机毕业设计之jsp物业管理系统
java·大数据·开发语言·汽车·课程设计
逝水无殇41 分钟前
C# 反射详解
开发语言·后端·c#
xlxxy_1 小时前
sap获取批次特性报表
java·linux·开发语言·前端·数据库·abap·mm
北冥you鱼1 小时前
Go语言常用包使用指南:从标准库到第三方利器
开发语言·microsoft·golang
神秘的MT1 小时前
SQL Server 分页查询 ROW_NUMBER () OFFSET...FETCH游标(Cursor) 数据插入
数据库·sql·学习·c#·winform
我才是银古1 小时前
一个人写出的 3D 几何引擎:Ara3D SDK 技术深度剖析
c#·三维几何·ai平台
俺不中嘞1 小时前
python常用函数
开发语言·python
欢喜躲在眉梢里1 小时前
用飞算Java做了一套新能源充电运营管理系统:把站点、设备、订单拆成可运营的微服务
java·开发语言·微服务·ai编程·技术分享·java开发·飞算javaai炫技赛