C#内置泛型委托之Action委托

当我们在C#中需要定义一个不带参数且没有返回值的委托时,可以使用Action委托来实现。Action委托是一个内置的泛型委托,用于封装一个无参数且无返回值的方法。

Action委托的语法

下面是Action委托的语法:

public delegate void Action();
public delegate void Action<in T>(T obj);
public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);
......

使用Action语法定义了一系列泛型委托,支持的参数数量从0到16不等。其中,尖括号中的in关键字表示参数是输入类型,在定义泛型委托时,需要以Action开头,后面跟着输入类型,最后跟着输出类型。

Action委托的用法

使用Action委托,可以封装一个方法,并将其作为参数传递给另一个方法。下面是Action委托的几条使用规则:

  1. Action委托可用于封装不带参数的方法

下面是一个简单的示例:

static void SampleMethod()
{
    Console.WriteLine("Hello, World!");
}

static void Main(string[] args)
{
    Action action = SampleMethod;
    action();    // 输出 "Hello, World!"
}

在这个示例中,我们定义了一个名为SampleMethod的方法,它没有参数,也没有返回值。然后,我们使用Action委托将它封装,并将Action委托作为参数传递给Main方法。

  1. Action委托可用于封装带参数的方法

下面是另一个示例,演示了如何使用Action委托来封装带参数的方法:

static void SampleMethod(string name)
{
    Console.WriteLine("Hello, {0}!", name);
}

static void Main(string[] args)
{
    Action<string> greet = SampleMethod;
    greet("World");   //输出 "Hello, World!"
}

在这个示例中,我们定义了一个名为SampleMethod的方法,它有一个名为name的参数,并将其输出到控制台。然后,我们使用Action 委托将其封装,并将Action委托作为参数传递给Main方法。

这就是Action委托的基本用法。事实上,它还有很多使用方法,如Action等等,具体使用方法可参考官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#内置泛型委托之Action委托 - Python技术站

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

相关文章

  • asp.net core为IHttpClientFactory添加动态命名配置

    ASP.NET Core为IHttpClientFactory添加动态命名配置攻略 在ASP.NET Core中,我们可以使用IHttpClientFactory来创建和管理HttpClient实例。在某些情况下,我们需要为不同的HttpClient实例提供不同的配置。本攻略将介绍如何为IHttpClientFactory添加动态命名配置,并提供两个示例说明…

    C# 2023年5月17日
    00
  • C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例

    下面我将详细讲解C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例的完整攻略。 什么是Builder生成器模式 Builder生成器模式是一种创建型设计模式,它将对象的构建和表示分离,使得同样的构建过程可以创建不同的表示,这样可以使得对象的构建更加灵活。Builder生成器模式一般涉及如下几个角色: Builder:抽象生成器,用于定义创建一个…

    C# 2023年6月1日
    00
  • c# 字符串操作总结

    C#字符串操作总结 在C#中,字符串是一种常用的数据类型。C#提供了许多内置方法和库函数来操作和处理字符串。本篇攻略将介绍C#的常见字符串操作和用法总结。 字符串的定义 在C#中,字符串是用引号(单引号或双引号)括起来的一系列字符。例如: string str1 = "hello"; string str2 = "world&q…

    C# 2023年5月15日
    00
  • C#中DateTime日期类型格式化显示方法汇总

    C#中DateTime日期类型格式化显示方法汇总 在C#中,DateTime是表示日期和时间的结构体。我们经常需要输出符合我们要求的日期和时间的格式来方便输出和理解。下面是一些DateTime的格式化输出方法: 标准格式字符串 格式字符串 描述 d 短日期格式,例如 2022/3/17 D 长日期格式,例如 2022年3月17日 t 短时间格式,例如 下午 …

    C# 2023年5月31日
    00
  • C#中多态性的实现

    C#中的多态性是通过继承和接口实现的。通过继承可以使子类继承父类的特征,而通过接口可以在类中实现多个接口。多态性能够提高代码可维护性和扩展性。下面是多态性的实现攻略。 继承实现多态性 继承是实现多态性的一种最基本的方式,子类可以继承父类所有的方法、属性和数据字段。子类可以使用父类的方法、属性和数据字段,同时还可以在子类中实现自己的方法、属性和数据字段。这样可…

    C# 2023年6月6日
    00
  • C#与C++枚举的区别对比和使用案例

    C#与C++枚举的区别对比和使用案例 枚举在C#和C++的基本定义 C#和C++中的枚举都是一组具有相同数据类型的常量。枚举定义的基本语法如下: C#: enum 枚举名称 { 枚举常量1, 枚举常量2, … } C++: enum 枚举名称 { 枚举常量1, 枚举常量2, … }; 在定义枚举时,常量的默认值从0开始自动递增。也可以给特定的枚举常量…

    C# 2023年5月15日
    00
  • Qt之调用C#的动态库的解决方法

    下面是关于”Qt之调用C#的动态库的解决方法”的完整攻略。 问题描述 Qt是一种跨平台的C++应用程序开发框架,然而有时候需要使用到C#写的动态链接库,此时需要解决Qt调用C#的动态库的问题。 解决方案 Qt虽然没有直接支持调用C#的动态链接库的方法,但是可以通过C++/CLI嵌入C#代码的方式实现调用C#动态库的功能,具体步骤如下: 1. 创建C++/CL…

    C# 2023年5月15日
    00
  • 详解ASP.NET Razor 语法

    ASP.NET Razor 是一种基于类 HTML 文件的标记语言,它以简单、清晰和易于使用而闻名。本攻略将详细讲解 Razor 语法,以帮助开发人员理解和使用 Razor。 Razor基础 变量 Razor 可以使用 @ 符号来定义变量,比如: @{ var message = "Hello World!"; } 定义完变量之后,就可以…

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