§ ITPOW >> 文档 >> C#

C# Predicate<T>

作者:vkvi 来源:ITPOW(原创) 日期:2022-7-20

C# Predicate<T> 中,它是指参数为 1 个返回值类型为 bool 的委托。

public T Do<T>(Predicate<T> check, T value, T defaultValue)
{
	if (check.Invoke(value))
	{
		return value;
	}

	return defaultValue;
}

int result = Do(m => m > 0, 3, 0);

上述调用 Do 时,可以不写作 Do<int>,因为 C# 根据参数,已经猜到了是 int 类型,故可以省略 <int>。

Do 的意思就是:

将 value 作为 check 的参数,进入 check 判断,true 返回 value,false 返回 defaultValue。

不喜欢用 Predicate<T>,用更灵活的也可以,比如:

public T Do<T>(Func<T, bool> check, T value, T defaultValue)
{
	if (check(value))
	{
		return value;
	}

	return defaultValue;
}

Func<int, bool> f = m => m > 0;
/*
// 复杂点也可以这样写:
Func<int, bool> f = (m) =>
{
	return m > 0;
};
*/
int result = Do(f, 3, 0);

相关阅读


相关文章