首页 > 编程语言 >C#:用Lambda表达式来实现接口中的方法

C#:用Lambda表达式来实现接口中的方法

时间:2024-04-10 14:30:13浏览次数:14  
标签:Console DoSomething C# int ienum 表达式 Lambda

在C#中,你可以使用Lambda表达式来实现接口中的方法。Lambda表达式是一种简洁的代码构造,它可以在需要委托类型的地方定义匿名函数。

假设你有一个接口IMyInterface,它有一个方法void DoSomething(),你可以这样使用Lambda表达式来实现这个接口:

interface IMyInterface
{
    void DoSomething();
}
 
class Program
{
    static void Main(string[] args)
    {
        IMyInterface myInterface = () =>
        {
            Console.WriteLine("在Lambda中实现接口方法");
        };
 
        myInterface.DoSomething();
    }
}

在上面的代码中,IMyInterface是一个接口,它只有一个方法DoSomething()。在Main方法中,我们创建了一个IMyInterface的实例,使用Lambda表达式() => { /* 代码实现 */ }来提供DoSomething方法的实现。当调用myInterface.DoSomething()时,Lambda表达式中的代码将被执行。

题外话,Array常用的方法Sort方法其中一个参数重载如下:

public static void Sort<T>(T[] array, Comparison<T> comparison);
这是一个泛型方法,如果定义了int[]进行排序,则T为int,第一个参数为数组对象,第二个参数是一个泛型委托,原型如下:

public delegate int Comparison<in T>(T x, T y);

我们可以用Lambda表达式实现这个参数,实现数组的排序,如下demo:

static void Main(string[] args)
{
    int[] numbs = { 3, 0, 5, 7, 8, 1, 2, 4 };

    IEnumerator ienum = numbs.GetEnumerator();
    while (ienum.MoveNext())
    {
        Console.WriteLine((int)ienum.Current);
    }
    Console.WriteLine();
    //升序排列
    Array.Sort(numbs, (a, b) => a.CompareTo(b));
    //降序排列
    Array.Sort(numbs, delegate (int a,int b) 
    {
        return b.CompareTo(a);
    });
    
    ienum.Reset();
    while (ienum.MoveNext())
    {
        Console.WriteLine((int)ienum.Current);
    }
    Console.WriteLine();
}

标签:Console,DoSomething,C#,int,ienum,表达式,Lambda
From: https://blog.csdn.net/weixin_44279482/article/details/137594657

相关文章

  • Python生成excel文件的三种方式
    在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel。当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,大家一起来看看吧~xlwt/xlrdxlrd是对于Excel进行读取,xlrd操作的是xls/xlxs格式的excelxlwt......
  • CIFS(samba)
    修改主机名hostnamectlset-hostnamesamba 刷新主机名bush查看是否关闭防火墙(若是开着需要关闭)systemctlstatusfirewalld编辑selinux文件vi/etc/selinux/config 关闭selinux防火墙setenforce0安装samba服务yuminstall-ysamba编辑samba配置文件vi/et......
  • SpringBoot整合Mybatis3 Dynamic Sql
      前置条件:CREATETABLE`volunteer`(`vt_id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'志愿者id',`vt_integral_count`int(11)DEFAULTNULLCOMMENT'剩余总积分',`vt_avatar`varchar(255)DEFAULTNULLCOMMENT'头像',`vt_name`va......
  • MIPI DSI --- DCS(Display Command Set)
    MIPI协议族,定义了一个专门用于显示的命令集,叫做DisplayCommandSet,简称为DCS。屏幕制造商(屏幕驱动芯片)都使用这一套标准。DisplayArchitectures按照是否带有帧缓存,分为三种架构:不带帧缓存、带完整一帧的缓存、带一部分帧缓存。如果带了 Framebuffer,那么图形数据不用每次......
  • 在 PowerShell 中,您可以使用一系列命令来管理和操作映像ESD(Electronic Software Downl
    在PowerShell中,您可以使用一系列命令来管理和操作映像ESD(ElectronicSoftwareDownload)文件。这些命令可以让您处理、部署和维护Windows映像。以下是一些常用的PowerShell命令:Add-WindowsImage:将Windows映像添加到WIM或VHD文件中。powershellCopyCodeAdd-Windo......
  • Counter 1000
    Froma1000Hzclock,derivea1Hzsignal,calledOneHertz,thatcouldbeusedtodriveanEnablesignalforasetofhour/minute/secondcounterstocreateadigitalwallclock.Sincewewanttheclocktocountoncepersecond,theOneHertzsignalmustb......
  • #产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL
    #产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL#产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL#产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL大约二十年了,安全性和生产率都不再是相互排斥的。其次,高度重视现代安全系统的集成到机器当局和机构,从而支持一个自由流动的生产。安全系统制造商提供了一......
  • Burp Suite Professional 2024.3.1 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
    BurpSuiteProfessional2024.3.1formacOSx64&ARM64-领先的Web渗透测试软件世界排名第一的Web渗透测试工具包请访问原文链接:BurpSuiteProfessional2024.3.1formacOSx64&ARM64-领先的Web渗透测试软件,查看最新版。原创作品,转载请保留出处。作者主页:sysin......
  • Burp Suite Professional 2024.3.1 (macOS, Linux, Windows) - Web 应用安全、测试和
    BurpSuiteProfessional2024.3.1(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:BurpSuiteProfessional2024.3.1(macOS,Linux,Windows)-Web应用安全、测试和扫描,查看最新版。......
  • HCL AppScan Standard v10.5.0 (Windows) - Web 应用程序安全测试
    HCLAppScanStandardv10.5.0(Windows)-Web应用程序安全测试HCLAppScanStandardv10forWindowsMultilingual请访问原文链接:HCLAppScanStandardv10.5.0(Windows)-Web应用程序安全测试,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org市场领先的应用程......