在Func Delegate中使用out参数

Mud*_*sir 6 delegates func c#-4.0

我有一个方法签名

bool TryGetItem(string itemKey,out Item item)
Run Code Online (Sandbox Code Playgroud)

我如何封装这个签名

delegate V Func<T,U,V>(T input, out U output)
Run Code Online (Sandbox Code Playgroud)

如在帖子中:Func <T>没有参数

Ham*_*yan 7

你刚才写的答案.

如果您在.net 4.0或更高版本中,则可以指定参数的方差.

public delegate TV MyFunc<in T, TU, out TV>(T input, out TU output);
Run Code Online (Sandbox Code Playgroud)

然后使用:

bool TryGetItem(string itemKey,out Item item);

MyFunc<string, Item, bool> func = TryGetItem;
Run Code Online (Sandbox Code Playgroud)