谓词委托是内置的泛型类型代表。该委托在系统命名空间。它与那些包含一些标准并确定传递的参数是否满足给定标准的方法一起使用。该委托仅接受一个输入, 并以true或false的形式返回值。现在, 首先, 我们了解自定义委托在这种情况下的工作方式。如下例所示。
语法如下:
public delegate bool Predicate <
in P>
(P obj);
在这里, P是对象的类型, 对象是要与Predicate代表的方法中定义的标准进行比较的对象。
例子:
//C# program to illustrate delegates
using System;
class GFG {//Declaring the delegate
public delegate bool my_delegate( string mystring);
//Method
public static bool myfun( string mystring)
{
if (mystring.Length <
7)
{
return true ;
}else
{
return false ;
}
}//Main method
static public void Main()
{//Creating object of my_delegate
my_delegate obj = myfun;
Console.WriteLine(obj( "Hello" ));
}
}
输出如下:
True
【C#谓词委托用法介绍】现在, 我们将上述程序与谓词委托一起使用, 如下所示。
例子:在下面的示例中, 我们使用谓词委托而不是自定义委托。它减少了代码的大小, 并使程序更具可读性。在此, 谓词委托包含单个输入参数, 并以布尔类型返回输出。在这里, 我们直接分配一个Myfun谓词委托的方法。
//C# program to illustrate Predicate delegates
using System;
class GFG {//Method
public static bool myfun( string mystring)
{
if (mystring.Length <
7)
{
return true ;
}
else
{
return false ;
}
}//Main method
static public void Main()
{//Using predicate delegate
//here, this delegate takes
//only one parameter
Predicate<
string>
val = myfun;
Console.WriteLine(val( "lsbin" ));
}
}
输出如下:
False
重要事项:
你还可以将Predicate委托与匿名方法一起使用, 如以下示例所示:
例子:
Predicate<
string>
val = delegate ( string str)
{
if (mystring.Length <
7)
{
return true ;
}
else
{
return false ;
};
val( "Geeks" );
你还可以将谓词委托与lambda表达式一起使用, 如以下示例所示:
例子:
Predicate<
string>
val = str =>
str.Equals(str.ToLower());
val( "Geeks" );
推荐阅读
- C#可选参数用法示例介绍
- C#程序查找出现的奇数次
- 用于最大总和连续子数组的C#程序
- C#编程语言入门学习指南提纲
- 不能加硬盘?C盘不够存储卡凑!
- 电脑主板怎样刷bios?
- android studio快捷键大全
- svchost一直在下载怎样处理
- 笔记本触摸板关不掉怎样处理