[英]Addition (i.e. +) extension method with a generic C# Dictionary
我正在尝试编写像这样的通用Dictionary扩展方法。 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)
无法编译-“类型参数声明必须是标识符而不是类型”
尝试:
public static void AddOrIncrement<TKey>(this Dictionary<TKey, int> dict, TKey key, int value)
您正在尝试制作仅采用一个通用参数的扩展方法:
public static void AddOrIncrement<TKey>(this Dictionary<TKey, int> dict, TKey key, int value)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.