別にインターフェイスを使いたいってわけじゃないだろ

var dic = new Dictionary<string, Delegate>();

Func<int, int> f1 = (i => i + 1);
Func<string, string> f2 = (s => s + "さん");
dic.Add("1", f1);
dic.Add("2", f2);

Console.WriteLine(dic["1"].DynamicInvoke(2));
Console.WriteLine(dic["2"].DynamicInvoke("名無し"));

これでいいんじゃないか