C# ConcurrentDictionary-将addValueFactory(Func<;string,T,T>;)转换为updateValueFactory(Func<;string,T,T>;)?

C# ConcurrentDictionary-将addValueFactory(Func<;string,T,T>;)转换为updateValueFactory(Func<;string,T,T>;)?,c#,delegates,concurrentdictionary,C#,Delegates,Concurrentdictionary,我使用的是一种在内部调用的方法 我想用相同的方法添加对insde的调用 但是,包含方法只接收一个addValueFactory参数(Func) 要调用AddOrUpdate()方法,我还需要一个updateValueFactory(Func)。但是我不想更改方法签名 理想情况下,我希望使用现有的addValueFactory函数来创建一个updateValueFactory函数,该函数将产生相同的T结果 有什么方法可以将addValueFactory(Func)转换为udpateValueFac

我使用的是一种在内部调用的方法

我想用相同的方法添加对insde的调用

但是,包含方法只接收一个
addValueFactory
参数(
Func

要调用
AddOrUpdate()
方法,我还需要一个
updateValueFactory
Func
)。但是我不想更改方法签名

理想情况下,我希望使用现有的
addValueFactory
函数来创建一个
updateValueFactory
函数,该函数将产生相同的
T
结果

有什么方法可以将addValueFactory(
Func
)转换为udpateValueFactory(
Func


public方法(字符串键,Func addValueFactory)
{
//现行守则
concurrentDictionary.GetOrAdd(key,addValueFactory)
//要添加的代码
//但是如何将(Func)转换为Func呢?
var updateValueFactory=?
concurrentDictionary.AddOrUpdate(键、addValueFactory、updateValueFactory)
}

我不是100%确定该使用什么标签。如果您认为可以改进,请更新它们。

只需将其设置为带有未使用参数的lambda:

var updateValueFactory = (Func<String, T, T>)((str, old) => addValueFactory(str));
var updateValueFactory=(Func)((str,old)=>addValueFactory(str));

谢谢!这正是我想要的。
var updateValueFactory = (Func<String, T, T>)((str, old) => addValueFactory(str));