C#中的Action、Func和Predicate如何使用

C#中的Action、Func和Predicate是三个常用的委托类型,它们分别表示参数列表不同的无返回值、有返回值、返回布尔值的委托。

Action

Action是一个表示参数类型为void的无返回值委托类型。可以定义最多16个输入参数的Action,用法如下:

// 定义一个无参数的Action
Action action1 = () => Console.WriteLine("Hello World!");

// 定义一个带有一个int类型参数的Action
Action<int> action2 = (x) => Console.WriteLine(x);

// 定义一个带有两个参数的Action
Action<string, int> action3 = (s, i) => Console.WriteLine($"{s}: {i}");

上面的例子分别创建了无参、带一个int参数、带有一个string参数和一个int参数的Action。在调用Action时,可以传递相应数量的参数,例如:

action1(); // 将输出 "Hello World!"
action2(123); // 将输出 123
action3("Age", 20); // 将输出 "Age: 20"

Func

Func是一个表示委托带有返回值的类型,其最后一个类型参数代表返回值类型。可以定义最多16个输入参数的Func,用法如下:

// 定义一个带两个参数且返回值为string类型的Func
Func<int, int, string> func1 = (x, y) => $"{x} + {y} = {x + y}";

// 定义一个无参数且返回值为bool类型的Func
Func<bool> func2 = () => DateTime.Now.Second % 2 == 0;

上面的例子分别创建了一个带有两个int类型的参数并返回string类型的Func,以及一个无参并返回bool类型的Func。在调用Func时,可以根据之前定义的参数列表传递相应数量的参数,例如:

Console.WriteLine(func1(5, 2)); // 将输出 "5 + 2 = 7"
Console.WriteLine(func2()); // 将输出 true 或者 false

Predicate

Predicate是一个表示委托带有一个输入参数,并返回布尔值类型的类型。用法如下:

// 定义一个带有int类型参数并返回bool类型的Predicate
Predicate<int> predicate = (x) => x % 2 == 0;

上面的例子创建了一个带有int类型的参数并返回bool类型的Predicate,其判断是否为偶数。调用Predicate时,传递相应类型参数即可获得相应的返回值,例如:

Console.WriteLine(predicate(5)); // 将输出 false
Console.WriteLine(predicate(6)); // 将输出 true

以上就是C#中Action、Func和Predicate的完整攻略,希望可以帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中的Action、Func和Predicate如何使用 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • C#多线程Singleton(单件)模式模板

    C#多线程Singleton(单件)模式模板是一种在多线程环境下保证对象只被创建一次并且可以被多线程共享的设计模式。下面我将提供一个完整的攻略来帮助大家了解如何在C#中实现多线程Singleton模式。 步骤一: 创建Singleton模板类 创建一个Singleton模板类,确保只有一个实例可以被创建。示例代码如下: public sealed class…

    C# 2023年5月31日
    00
  • C#中让控件全屏显示的实现代码(WinForm)

    以下是C#中让控件全屏显示的实现代码的攻略: 第一步:准备工作 首先,在你的WinForm程序中找到需要全屏显示的控件(例如一个PictureBox),然后在窗体的SizeChanged事件中添加代码。 接下来,你需要给控件添加以下属性: Dock = Fill 使得控件充满整个窗体 Anchor = Top, Bottom, Left, Right 使得控…

    C# 2023年6月7日
    00
  • C# Page用于各页面继承功能实例

    C# Page 是一个 ASP.NET web form 中的类,定义在 System.Web.UI 命名空间中,用于代码重用和封装网站实现的功能。C# Page 通过继承,使得子页面可以拥有与父页面相同的特性和方法,使得代码的复用性和可维护性得到提高。 使用 C# Page 继承的方法,首先需要定义一个父级页面,父级页面需要实现想要继承的功能,例如在页面加…

    C# 2023年5月31日
    00
  • C#操作注册表的方法

    下面是关于C#操作注册表的方法的完整攻略。 什么是注册表 注册表是Windows操作系统中一个存储配置信息的关键数据结构。在注册表中,包含了大量的系统和软件的配置信息,比如安装路径、环境变量、文件类型、驱动程序等等。Windows系统和软件的运行状态也将会写入注册表。 在C#中,我们可以通过Registry类来访问和操作注册表。 C#操作注册表的方法 读取注…

    C# 2023年5月15日
    00
  • 基于C#生成随机数示例

    生成随机数是很常见的一种需求,无论是在游戏、金融还是科学领域,都需要使用到随机数。C#作为一门强大的编程语言,自然也提供了非常方便的方法来生成随机数。 下面是生成随机数的完整攻略。 步骤一 – 声明随机数生成器 首先,我们需要创建 Random 类型的对象,来帮助我们生成随机数。 在 C# 中,我们可以使用以下代码生成随机数生成器: Random rando…

    C# 2023年6月1日
    00
  • C#往线程里传递参数的方法小结

    针对“C#往线程里传递参数的方法小结”,我将分以下几步来进行详细讲解: 一、参数传递的基本方法 在C#中,向Thread线程传递参数有多种方法。其中最常用的一种是通过将参数封装到一个对象中,再将该对象传递给Thread.Start()方法。这个对象可以是任何一个类的实例,常用的方式是使用匿名类型或者是Tuple类型。 具体来说,可以按照如下方式编写代码: i…

    C# 2023年6月7日
    00
  • C#使用ML.Net完成人工智能预测

    C#可以使用ML.Net来实现人工智能预测,下面是一些基本的步骤: 1.安装ML.Net。可以通过Visual Studio NuGet包管理器或者官网下载进行安装。 2.准备数据。可以使用Microsoft Excel进行数据采集和整理,将数据存储到CSV格式或者SQL Server数据库中。 3.定义数据结构。为了训练和预测模型,需要定义数据结构。例如,…

    C# 2023年5月15日
    00
  • .NET Core使用Eureka实现服务注册

    下面我将详细讲解”.NET Core使用Eureka实现服务注册”的完整攻略。 什么是Eureka Eureka是Netflix开源的一个提供服务治理的组件。通过Eureka,服务提供者将自己的信息(比如IP、端口、路径等)注册到Eureka上,服务消费者从Eureka上获取服务提供者的信息,然后消费者就可以根据这些信息来请求服务。这个过程中,Eureka扮…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部