当前位置: 首页 > news >正文

c# 什么是扩展方法

官方解释        

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

        最常见的扩展方法是 LINQ 标准查询运算符,它将查询功能添加到现有的 System.Collections.IEnumerable 和 System.Collections.Generic.IEnumerable<T> 类型。 若要使用标准查询运算符,请先使用 using System.Linq 指令将它们置于范围中。 然后,任何实现了 IEnumerable<T> 的类型看起来都具有 GroupBy、OrderBy、Average 等实例方法。 在 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();

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

http://www.lryc.cn/news/419720.html

相关文章:

  • 全屏组件封装(react18+antd)
  • wordpress全局自适应网址导航整站打包源码,含主题和数据库
  • PyTorch深度学习框架
  • Python和AI库NumPy(二):数组创建与操作
  • GD32 SPI驱动代码
  • Qgis 开发初级 《数据库和图层》
  • 三大机器学习框架对比:TensorFlow、PyTorch与Scikit-Learn
  • Apache OFBiz 曝出严重漏洞,允许预身份验证 RCE
  • SpringCloud 微服务nacos和eureka
  • Java学习篇(一)| 如何生成分布式全局唯一ID
  • c++ 弹窗办法
  • 小程序使用this.animate实现3维动画切换
  • 【区块链+社会公益】第一反应互助急救链 | FISCO BCOS应用案例
  • leetcode 136. 只出现一次的数字
  • 可扩展架构设计:策略与最佳实践
  • 一图胜千言|图解Pandas常用操作!
  • ue5正确导入资源 content(内容),content只能有一个
  • HTTP协议基础知识【后端 4】
  • 2024/8/10 英语每日一段
  • 深入探索 Wireshark——网络封包分析的利器
  • VS2022使用.Net Framework4.0方法
  • 创建一个简单的贪吃蛇游戏:HTML、CSS和JavaScript教程
  • 全面讲解电子齿轮比与脉冲数计算
  • 音频进阶学习一——模拟信号和数字信号
  • SpringBoot企业人事管理系统-附源码与配套论文
  • 用window计算器实现定点数的十进制和二进制之间相互转换
  • 搬砖人2024年的智能工作伙伴 —— 4款思维导图软件种草集!
  • 【Python第三方库】Requests全面解析
  • 基于CNN的医学X-Ray图像分类全程解析
  • C++初学者指南-5.标准库(第二部分)--排序序列操作