首页 > 编程语言 >C#扩展方法

C#扩展方法

时间:2023-11-18 17:34:40浏览次数:27  
标签:C# 扩展 IEnumerable ServiceCollection 类型 方法

定义

扩展方法 - C# 编程指南 - C# | Microsoft Learn

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

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

示例

ServiceCollection的静态方法

注:this关键字

 public static class ServiceExtensions
    {
        public static void TestService(this ServiceCollection collection,string msg)
        {
            Console.WriteLine("C#扩展方法测试+============="+msg);
        }
    }

扩展方法调用

var services = new ServiceCollection();
services.TestService("kuozhanfangfaceshi1");
Console.ReadLine();

输出

 

标签:C#,扩展,IEnumerable,ServiceCollection,类型,方法
From: https://www.cnblogs.com/lixiang1998/p/17840800.html

相关文章

  • class lombok.javac.apt.LombokProcessor (in unnamed module @0x4587f0f9)
    classlombok.javac.apt.LombokProcessor(inunnamedmodule@0x4587f0f9)cannotaccessclasscom.sun.tools.javac.processing.JavacProcessingEnvironment(inmodulejdk.compiler)becausemodulejdk.compilerdoesnotexportcom.sun.tools.javac.processingtounn......
  • C语言指针的应用场景
    C语言指针的应用场景指针是C语言的精华和灵魂,不懂指针,基本等同于不会C语言。掌握指针,让学会C语言不再成为梦想而成为现实。指针基本上有三大类:指向数据的指针指向函数的指针泛型指针(void*)指针的应用场景可以分为以下10类:-1.与函数相关的使用-1.1在函数中用作输出......
  • 青少年CTF-WEB-Flag在哪里?
    题目环境:F12查看源代码得到flag:qsnctf{1167716c-54f0-47da-baed-49e3b08dfaeb}此题主要考察F12查看源代码的使用......
  • C只读变量和常量
    ......
  • C浮点型
    ......
  • C枚举类型
    ......
  • C字符输入输出函数
    ......
  • 使用 Filebeat+Easysearch+Console 打造日志管理平台
    近年来,日志管理平台越来越流行。使用日志管理平台可以实时地、统一地、方便地管理和查看日志,挖掘日志数据价值,驱动运维、运营,提升服务管理效率。方案架构Beats是轻量级采集器,包括Filebeat、Metricbeat等。Easysearch是个分布式搜索引擎,提供搜集、分析、存储数据等主要功......
  • Educational Codeforces Round 13 E
    tilian最开始看错了以为是可以任意选择两人or选择一人胜出但题意是可以选择下一个擂主是谁考虑dp的话我们显然需要记录一个state以及当前擂主是谁转移就是dp[state][i]=max(dp[state][i],dp[state(1<<j)][j]*a[i][j]+dp[state(1<<i)]*a[j][i])意义是我们枚举他后一个交......
  • Windows7使用docker
    Windows7使用docker注:win10可以下载桌面版,详情看官网1、安装win7需要dockertoolbox进行安装,但官网以前有,现在没了,所以要去菜鸟教程给的地址下载:[阿里镜像](Indexof/docker-toolbox/windows/docker-toolbox/(aliyun.com))下载后直接安装,selectcomponents最好勾上没有的安......