C# 委托(delegate、Action、Func、predicate)
2020-12-27 21:28
标签:bsp cti world hello 另一个 false 表示 bool class 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。事件是一种特殊的委托。 1.委托的特点: 委托类似于 C++ 函数指针,但它们是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。 委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不必与委托签名完全匹配。 2.总结: Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型 Func可以接受0个至16个传入参数,必须具有返回值 Action可以接受0个至16个传入参数,无返回值 Predicate只能接受一个传入参数,返回值为bool类型 (1). delegate delegate我们常用到的一种声明 Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。 例:public delegate int MethodtDelegate(int x, int y);表示有两个参数,并返回int型。 (2). Action Action是无返回值的泛型委托。 Action 表示无参,无返回值的委托 Action Action Action Action至少0个参数,至多16个参数,无返回值。 (3). Func Func是有返回值的泛型委托 Func Func Func Func Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void (4) .predicate predicate 是返回bool型的泛型委托 predicate Predicate有且只有一个参数,返回值固定为bool 例:public delegate bool Predicate C# 委托(delegate、Action、Func、predicate) 标签:bsp cti world hello 另一个 false 表示 bool class 原文地址:https://www.cnblogs.com/itsone/p/13336325.htmlpublic delegate int MethodDelegate(int x, int y);
private static MethodDelegate method;
static void Main(string[] args)
{
method = new MethodDelegate(Add);
Console.WriteLine(method(10,20));
Console.ReadKey();
}
private static int Add(int x, int y)
{
return x + y;
}
static void Main(string[] args)
{
Test
static void Main(string[] args)
{
Console.WriteLine(Test
static void Main(string[] args)
{
Point[] points = { new Point(100, 200),
new Point(150, 250), new Point(250, 375),
new Point(275, 395), new Point(295, 450) };
Point first = Array.Find(points, ProductGT10);
Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
Console.ReadKey();
}
private static bool ProductGT10(Point p)
{
if (p.X * p.Y > 100000)
{
return true;
}
else
{
return false;
}
}
文章标题:C# 委托(delegate、Action、Func、predicate)
文章链接:http://soscw.com/index.php/essay/38679.html