public object AddOrUpdate(WeakKeyDictionary <object, int, object> d, Tuple <object, int> k, object addValue, Func <Tuple <object, int>, object, object> updateValueFactory) { return (d.AddOrUpdate( k.Item1, k.Item2, addValue, (kp1, kp2, v) => updateValueFactory(Tuple.Create(kp1, kp2), v) ) ); }
public object AddOrUpdate(WeakKeyDictionary <object, object, object, int, object> d, Tuple <object, object, object, int> k, Func <Tuple <object, object, object, int>, object> addValueFactory, Func <Tuple <object, object, object, int>, object, object> updateValueFactory) { return (d.AddOrUpdate( k.Item1, k.Item2, k.Item3, k.Item4, (kp1, kp2, kp3, kp4) => addValueFactory(Tuple.Create(kp1, kp2, kp3, kp4)), (kp1, kp2, kp3, kp4, v) => updateValueFactory(Tuple.Create(kp1, kp2, kp3, kp4), v) ) ); }