Я пытаюсь написать общий метод расширения словаря, как это.TValue всегда будет int, но TKey может быть строкой или DateTime.
public static void AddOrIncrement<TKey, TValue>(this Dictionary<TKey, TValue> dict, TKey key, TValue value)
{
if (!dict.ContainsKey(key))
{
dict.Add(key, value);
}
else
{
dict[key] += value;
}
}
Но это не скомпилируется - оператор + не может быть применен к операндам типа TValue и TValue'.
Итак, я пытаюсь:
public static void AddOrIncrement<TKey, TValue>(this Dictionary<TKey, TValue> dict, TKey key, TValue value) where TValue : int
, но это тоже не компилируется.Тогда я попытался:
public static void AddOrIncrement<TKey, int>(this Dictionary<TKey, int> dict, TKey key, int value)
, который не компилируется - «Объявление параметра типа должно быть идентификатором, а не типом»