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();

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

相关推荐
福楠5 小时前
模拟实现list容器
c语言·开发语言·数据结构·c++·list
listhi5205 小时前
基于MATLAB实现高斯混合模型(GMM)与马尔可夫模型结合
开发语言·matlab
工业甲酰苯胺5 小时前
使用 C# 和 SQL Server 自动化邮件中的用户分配数据处理
数据库·c#·自动化
雨大王5125 小时前
数字孪生如何助力汽车零部件企业实现柔性生产?
开发语言·人工智能·python
hqwest5 小时前
码上通QT实战05--绘制导航按钮
开发语言·css·qt·自定义控件·qframe·布局ui
AI爱好者20205 小时前
智能优化算法2025年新书推荐——《智能优化算法及其MATLAB实例(第4版)》
开发语言·算法·matlab
初子无爱5 小时前
Java接入支付宝沙箱支付教程
java·开发语言
duanyuehuan5 小时前
js 解构赋值
开发语言·前端·javascript
wearegogog1235 小时前
基于试射法和龙格库塔法的层状介质射线追踪MATLAB实现
开发语言·matlab
木木木一5 小时前
Rust学习记录--C4 Rust所有权
开发语言·学习·rust