当我们在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委托的几条使用规则:
- Action委托可用于封装不带参数的方法
下面是一个简单的示例:
static void SampleMethod()
{
Console.WriteLine("Hello, World!");
}
static void Main(string[] args)
{
Action action = SampleMethod;
action(); // 输出 "Hello, World!"
}
在这个示例中,我们定义了一个名为SampleMethod的方法,它没有参数,也没有返回值。然后,我们使用Action委托将它封装,并将Action委托作为参数传递给Main方法。
- 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委托的基本用法。事实上,它还有很多使用方法,如Action
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#内置泛型委托之Action委托 - Python技术站