я следующий кусок расширения служит какой-то благой целью:Множественных где ограничений для одного общего типа
public static TV Put<TK, TV, TC>(this IDictionary<TK, TC> dictionary, TK key, TV value) where TC : ICollection<TV>, new()
{
TC collection = dictionary.TryGetValue(key);
if (collection == null)
{
dictionary.Add(key, collection = new TC());
}
collection.Add(value);
return value;
}
// Omit the following code, it is used within method Put
public static TV TryGetValue<TK, TV>(this IDictionary<TK, TV> dictionary, TK key)
{
TV result;
if (dictionary.TryGetValue(key, out result))
{
return result;
}
return default(TV);
}
Я хочу дополнительно ограничение универсального параметра TC
быть эталонным значения, так что пользователь не работает в проблемы во время выполнения if (collection == null)
заявления в случае, если ТС является тип значения, так как я имею дело с такого рода проблемой, когда я хочу, чтобы коллекция быть как получена из
TC : ICollection<TV>
и TC : class
Он работал, спасибо! – Lu4