Ответ 1
Вы просто создаете метод generic:
public static void AddFormat<TKey>(this Dictionary<TKey, string> dictionary,
TKey key,
string formatString,
params object[] argList)
{
dictionary.Add(key, string.Format(formatString, argList));
}
Обратите внимание, что он только генерируется в типе ключа, так как значение должно быть string
(или потенциально object
или интерфейс, который реализуется string
), учитывая, что вы собираетесь добавить строку значение для него.
К сожалению, вы действительно не можете выразить ограничение "разрешать типы значений, где string
- допустимое значение" в ограничении общего типа.