C# 委托vs动作,函数在C中#
这似乎是个愚蠢的问题,但这只是出于好奇 我们已经在C#中定义了两个特定的委托:C# 委托vs动作,函数在C中#,c#,delegates,C#,Delegates,这似乎是个愚蠢的问题,但这只是出于好奇 我们已经在C#中定义了两个特定的委托: 操作封装了任何接受0个或多个参数的“void”方法。 Func封装任何返回特定值类型并接受0个或多个参数的方法 我的问题是:在哪些情况下建议定义自定义委托? 你为什么要这么做? 提前感谢所有Func或Action类型都不允许out或ref参数,因此如果需要使用这些参数,您必须定义自己的代理,例如: public delegate bool TryParse<T>(string s, out T
Func封装任何返回特定值类型并接受0个或多个参数的方法 我的问题是:在哪些情况下建议定义自定义委托?
你为什么要这么做?
提前感谢所有
Func
或Action
类型都不允许out
或ref
参数,因此如果需要使用这些参数,您必须定义自己的代理,例如:
public delegate bool TryParse<T>(string s, out T value);
public委托bool TryParse(字符串s,out T值);
在很多情况下,您需要引用/指向一个函数(因此,如果函数的实际实现在运行时会有所不同,除了签名),但该函数与给定的任何一个委托都不匹配。说
公共代表T MyDel(T T,U U,V V) 代表在Func和Action之前就已经存在了,在许多方面,他们充当向后兼容设备。然而,在有些情况下,你不能四处走动,只能创建你的委托。注意,这可能会很有用。是的,这很符合逻辑。我不知道这是否是YOUR的意图,但您刚刚让我意识到Action和Func也不允许类型参数。
非常感谢!您的委托中有两种返回类型。我想你的意思是:公共委托booltryparse(字符串s,out T值);我希望我能编辑它,但6个字符的规则仍然适用。@user886079-是的,我的意思是
bool
,谢谢。你说得绝对正确。谢谢你,伙计!