C#中的Action
时间: 2023-10-19 11:55:04 浏览: 49
在C#中,Action是一个预定义的委托类型之一。它是一个没有返回值的委托,可以用来引用不带参数或带多个参数的方法。
下面是几个使用Action的示例:
1. 创建一个不带参数的Action:
```csharp
Action action = () => {
// 在这里编写方法体
};
```
2. 创建一个带一个参数的Action:
```csharp
Action<int> action = (num) => {
// 在这里使用参数num
};
```
3. 创建一个带多个参数的Action:
```csharp
Action<string, int> action = (name, age) => {
// 在这里使用参数name和age
};
```
4. 调用Action:
```csharp
action(); // 调用不带参数的Action
action(10); // 调用带一个参数的Action
action("John", 25); // 调用带多个参数的Action
```
可以看到,使用Action可以方便地定义和调用不同类型的方法。它经常用于事件处理、回调函数等场景中。
相关问题
c# action
C# `Action` 是一个委托类型,用于表示不返回值的方法。它可以作为参数传递给其他方法,也可以用于定义匿名方法或 lambda 表达式。 `Action` 委托可以接受最多 16 个输入参数,但不返回任何结果。下面是一个简单的示例:
```csharp
using System;
class Program
{
static void Main()
{
Action<string> greet = (name) =>
{
Console.WriteLine("Hello, " + name);
};
greet("John"); // 输出:Hello, John
}
}
```
在这个示例中,我们定义了一个 `Action<string>` 委托类型的变量 `greet`,它接受一个 `string` 类型的参数,并在方法体中打印出问候语。然后我们调用 `greet` 方法并传递一个字符串参数 "John"。输出结果为 "Hello, John"。
`Action` 委托还可以用于表示不带参数的方法,或者不带参数且返回一个值的方法(使用泛型版本 `Action<TResult>`)。需要根据具体的情况来选择正确的委托类型。
C#Action函数
C#中的Action是一个委托(delegate),它用于引用不包含参数并且不返回值的方法。Action可以作为参数传递给其他方法,也可以在需要时执行。
Action委托的定义如下:
```csharp
public delegate void Action();
```
Action委托也可以接受最多16个输入参数,用于调用需要传递参数的方法。例如,以下是一个接受两个参数的Action委托的定义:
```csharp
public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);
```
使用Action委托可以方便地执行一些简单的操作,而无需显式地定义新的委托类型。下面是一个使用Action的示例:
```csharp
class Program
{
static void Main(string[] args)
{
Action printMessage = () => Console.WriteLine("Hello, World!");
printMessage(); // 输出:Hello, World!
Action<string> greet = (name) => Console.WriteLine($"Hello, {name}!");
greet("John"); // 输出:Hello, John!
}
}
```
在上面的示例中,我们创建了两个Action委托实例。第一个实例printMessage引用了一个不接受参数并且不返回值的方法,我们可以直接调用该委托来执行这个方法。第二个实例greet引用了一个接受一个字符串参数并且不返回值的方法,我们可以通过传递参数来调用该委托。
希望能解答你的问题,如果还有其他问题,请继续提问!