Func<object, string, bool> filter;这在C#中是什么用法?

Func<object,string,bool>filter;publicFunc<object,string,bool>Filter{get{returnfilter;... Func<object, string, bool> filter;
public Func<object, string, bool> Filter
{
get
{
return filter;
}
set
{
if (filter != value)
{
filter = value;
if (listBox != null)
{
if (filter != null)
listBox.Items.Filter = FilterFunc;
else
listBox.Items.Filter = null;
}
}
}
展开
 我来答
liuwp526
推荐于2018-03-30 · TA获得超过726个赞
知道小有建树答主
回答量:488
采纳率:87%
帮助的人:82.8万
展开全部
Func<object, string, bool>是泛型,你可以先把他看成一个普通类型,比如string
public class Func{ } // 自定义个普通类.

Func filter; // 自定义个字段
public Func Filter // 属性,上个字段filter的访问器.类型为Func
{
get
{ return filter;}
set
{ }
}
不考虑Func<object, string, bool>,上段代码明白不?,不明白我在给你解释.
下面说泛型

假如有下列几个自定义类,每个类都有个成员my_item,但是my_item得类型都不一样
class Func1
{
public int my_item;
}
class Func2
{
public string my_item;
}
class Func3
{
public bool my_item;
}

要用int的my_item,就要用 Func1 my_func = new Func1();
要用bool的,就要用 Func3 my_func = new Func3();

这个时候就显示出泛型的用处了:
class Func<T>
{
public T my_item; // 就类定义来说,这里的T是个未知类型
}
这就是泛型,作用是将类型的指定推迟到客户端代码声明并实例化该类或方法的时候
顾名思义,泛型,就是说是广泛的类型,这个public T my_item中的类型T,可能是个int型,也可能是string型,也可能是List,或者Array等等等等
总而言之,它可能是任何类型.
怎么确定这个T到底是什么类型呢?看上边那句话:将类型的指定推迟到客户端代码声明并实例化该类或方法的时候

以下代码声明并实例化一个Func<T>,
你可以把T看做是一个变量,这个变量只接受类名称.
Func<int> my_Func = new Func<int>;
//这个时候,类成员public T my_item 实际上就是public int my_item
//就是说,用声明和实例化的时候<>里边的类型,替换所有类定义里边T.
Func<string> my_Func = new Func<string>;
//这个时候,类成员public T my_item 实际上就是public string my_item

我们再把类定义的泛型扩展:
class Func<T1, T2, T3>
{
public T1 my_item1;
public T2 my_item2;
public T3 my_item3;
}

然后我们在其它类里边定义个成员my_Func:
Func<int, Object, TextBox> my_Func;
这样,my_item1就是int型,my_item2是个Object, my_item3是个TextBox控件.
然后,再定义个属性My_Func,为my_Func设置个访问器:
public Func<int, Object, TextBox> My_Func
{
get{}
set{}
}

其实,一句话,泛型的作用就是为声明和实例化个一个类实例的时候,把类型作为个参数.

例如 List<string> list
list里边是string类型的集合.

另外,这仅仅是泛型而非委托啊,
第二行声明的Filter明显是filter的访问器,如果filter是委托,给他加个访问器你能编译过去才怪.
如果是委托,有把委托加到ListBox去显示去的吗?
FantasyChump
2010-12-01 · TA获得超过3287个赞
知道大有可为答主
回答量:2127
采纳率:0%
帮助的人:2221万
展开全部
Func<object,string,bool> 是一个委托类型, 它定义的函数接受两个参数,类型分别为Object,string,返回bool类型的结果.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc91b32
2010-12-01 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
Func<object, string, bool> filter;
定义一个委托变量filter
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友83200e1
2010-12-01 · TA获得超过101个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:124万
展开全部
泛型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旅俊智LA
2010-12-01 · TA获得超过133个赞
知道答主
回答量:188
采纳率:0%
帮助的人:87.4万
展开全部
任务
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式