C# 内部类与Lambda表达式用法详解

作者:做哈白日梦 时间:2022-07-13 05:54:11 

目录
  • 一、内部类

    • 1.什么是内部类?

      • 1.类作为形参和返回值:

      • 2.内部类的几种形式

  • 二、Lambda表达式(强调做什么,而不是以什么形式去做)

    • 1.Lambda表达式的格式要求:

      • 2.Lambda与匿名内部类的区别

        • 1.省略模式

        • 2.Lambda与匿名内部类的区别:

    • 三、方法引用

      • 1.方法的概述:

        • 2.常见的方法引用方式:

          • 3.方法引用的具体方式:

          一、内部类

          1.什么是内部类?

          1.类作为形参和返回值:

          抽象类作为形参和返回值:

          • 通过多态的形式去传递抽象类作为形参的方法,方法的形参与返回值为抽象类名,则需要的是该抽象类的子类对象。

          • 类名作为形参与返回值:方法的形参与返回值为类名时,则需要的是该类的对象。

          • 接口名作为形参与返回值:方法的形参与返回值为接口名时,则需要的是该接口的实现类对象。

          内部类的概述:

          • 内部类里面访问特点是在外面的类需要访问里面类的时,是需要创建对象才能调用,里面的类则可以直接使用外面类的成员。

          C# 内部类与Lambda表达式用法详解

          2.内部类的几种形式

          1.成员内部类

          C# 内部类与Lambda表达式用法详解

          注意事项:创建内部类的对象时,除了私有的内部类,定义为私有的类时,是需要外部类创建对象将其调用内部类的成员与方法,再在测试类里去创建外部类的对象,调用其方法。

          2.局部内部类

          局部内部类是需要在方法中去写的,主要格式跟成员内部类差不多。

          匿名内部类(是局部内部类的一种格式,也需要在方法里面写)

          C# 内部类与Lambda表达式用法详解

          当需要进行接口和抽象类的内部类时,则可以通过匿名内部类的方式,注意的是匿名内部类是一个相当于接口或抽象类的实现继承类的对象,所以可以直接通过赋值给一个接口,抽象名,通过这个直接调用内部类里面的成员。
          当在开发中的使用时:

          C# 内部类与Lambda表达式用法详解

          这里首先创建了一个对象,创建对象后调用其中的方法,返回值是一个接口,所以需要创建一个实现接口类去重写接口方法,并调用。但匿名内部类则减少了很多步骤,直接在测试类中通过匿名内部类的方式,对接口里面的方法进行重写,到达简便。

          二、Lambda表达式(强调做什么,而不是以什么形式去做)

          1.Lambda表达式的格式要求:

          C# 内部类与Lambda表达式用法详解

          注意事项:Lambda表达式的前提条件:

          • 有一个接口

          • 接口中有且只有一个抽象方法。

          例子:

          C# 内部类与Lambda表达式用法详解

          说明这里在下面写了一个方法,在调用方法时候是将返回Lambda的表达式中进行运行最后又返回回去,执行下一步操作。

          2.Lambda与匿名内部类的区别

          1.省略模式

          参数可以省略(多个参数时需都省略),如果参数只有一个时候,也可以省略小括号,同时如果代码块语句只有一条,也可以省略大括号和分号(注意事项:如果有return时,return也要省略)。

          C# 内部类与Lambda表达式用法详解

          注意事项:

          C# 内部类与Lambda表达式用法详解

          2.Lambda与匿名内部类的区别:

          C# 内部类与Lambda表达式用法详解

          三、方法引用

          1.方法的概述:

          在方法引用其实是Lambda的孪生兄弟,通过方法引用的形式进行,方法引用符为"::",在通过方法名(System.out::println)的形式,其实就是写好的Lambda表达式中参数再次赋值并调用的。所以方法引用主要是运用到已写好的Lambda表达式的二次运用。

          2.常见的方法引用方式:

          C# 内部类与Lambda表达式用法详解

          3.方法引用的具体方式:

          • 引用对象的实例方法

          C# 内部类与Lambda表达式用法详解

          说明:在引用对象的实例方法的情况是在Lambda表达式与其中类里面所执行的操作相同所以可以运用替代,在替代时,它的形式参数全部传递给该方法作为参数,格式为"对象名::方法名"。

          • 引用类的实例方法

          C# 内部类与Lambda表达式用法详解

          说明:在引用类的实例方法中时,通过”类名::方法名“的格式要求进行

          • 引用构造器(引用构造方法)

          C# 内部类与Lambda表达式用法详解

          说明:在引用构造方法时候,是通过“类名::new”的格式进行,当Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数。同时所传递的参数通过类名进入到具有两个参数的构造方法中去。

          • 引用类方法(引用类的静态方法)

          C# 内部类与Lambda表达式用法详解

          说明:当需要引用类方法时,有”类名::静态方法名“的格式进行修饰同时,Lambda表达式被类方法替代时候,他的形式参数全部传递给静态方法作为参数。

          来源:https://blog.csdn.net/weixin_46870007/article/details/120262279

          标签:C#,内部类,Lambda表达式
          0
          投稿

          猜你喜欢

        • Java 常量池详解之字符串常量池实现代码

          2022-09-09 22:12:03
        • Spring使用AOP完成统一结果封装实例demo

          2021-12-16 18:49:06
        • SpringBoot动态修改yml配置文件的方法详解

          2023-06-20 16:14:34
        • springboot项目快速搭建的方法步骤

          2021-11-07 04:55:51
        • Java并发问题之乐观锁与悲观锁

          2022-07-13 19:59:05
        • C#微信公众号开发之用户管理

          2023-04-13 02:40:12
        • Java实现驼峰和下划线互相转换的示例代码

          2023-12-16 15:23:48
        • Unity实现轮盘方式的按钮滚动效果

          2022-06-19 16:53:57
        • C#自定义针对URL地址的处理类实例

          2022-09-12 16:54:02
        • Springboot整合knife4j与shiro的操作

          2023-08-25 08:31:42
        • Android重要控件SnackBar使用方法详解

          2022-11-10 04:49:41
        • Java编写迷宫小游戏

          2021-08-06 12:53:33
        • Android仿微信实现首字母导航条

          2022-07-16 11:14:29
        • Java Druid连接池与Apache的DBUtils使用教程

          2021-07-29 13:21:44
        • C#中使用JSON.NET实现JSON、XML相互转换

          2022-12-11 04:34:12
        • 手写Java LockSupport的示例代码

          2021-11-05 07:00:39
        • Java数据结构之线性表

          2022-08-21 06:32:28
        • IISExpress 配置允许外部访问详细介绍

          2023-08-02 02:18:10
        • Java 异常的栈轨迹(Stack Trace)详解及实例代码

          2023-12-13 12:19:02
        • 使用ViewPager实现左右循环滑动及滑动跳转

          2023-04-12 20:42:43
        • asp之家 软件编程 m.aspxhome.com