服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# 内部类与Lambda表达式用法详解

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

2022-12-07 11:41做哈白日梦 C#

Lambda表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数;内部类是将一个类定义在另一个给类里面或者方法里面,这样的类就被称为内部类

一、内部类

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表达式被类方法替代时候,他的形式参数全部传递给静态方法作为参数。

到此这篇关于C# 内部类与Lambda表达式用法详解的文章就介绍到这了,更多相关C# Lambda表达式内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_46870007/article/details/120262279

延伸 · 阅读

精彩推荐
  • C#为IObservable实现自己的运算符(详解)

    为IObservable实现自己的运算符(详解)

    下面小编就为大家带来一篇为IObservable实现自己的运算符(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C#教程网8282022-01-04
  • C#C# List实现行转列的通用方案

    C# List实现行转列的通用方案

    本篇通过行转列引出了System.Linq.Dynamic,并且介绍了过滤功能,具有很好的参考价值。下面跟着小编一起来看下吧...

    焰尾迭12402021-12-28
  • C#C#实现程序开机启动的方法

    C#实现程序开机启动的方法

    这篇文章主要介绍了C#实现程序开机启动的方法,涉及C#针对应用程序及注册表的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    冇一朵小尐尒尕尗尛尜4372021-11-24
  • C#c#中DataTable转List的2种方法示例

    c#中DataTable转List的2种方法示例

    这篇文章主要给大家介绍了关于c#中DataTable转List的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋...

    chenweilong2138662022-11-12
  • C#C#对Word文档的创建、插入表格、设置样式等操作实例

    C#对Word文档的创建、插入表格、设置样式等操作实例

    今天小编就为大家分享一篇C#对Word文档的创建、插入表格、设置样式等操作实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    罗氏钱币10822022-02-23
  • C#C#简单输出日历的方法

    C#简单输出日历的方法

    这篇文章主要介绍了C#简单输出日历的方法,涉及C#针对日期与时间的简单操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    dongfengkuayue4942021-10-29
  • C#C#飞机打字游戏的代码示例(winform版)

    C#飞机打字游戏的代码示例(winform版)

    这篇文章主要介绍了C#飞机打字游戏的代码示例(winform版),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋...

    Dust_SongYunfei7192022-11-08
  • C#WindowsForm移动一个没有标题栏的窗口的方法

    WindowsForm移动一个没有标题栏的窗口的方法

    这篇文章主要介绍了WindowsForm移动一个没有标题栏的窗口的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    zhuanghamiao4302022-09-27