Недавно я узнал, что индексатор может принимать массив аргументов как params
:
public class SuperDictionary<TKey, TValue>
{
public Dictionary<TKey, TValue> Dict { get; } = new Dictionary<TKey, TValue>();
public IEnumerable<TValue> this[params TKey[] keys]
{
get { return keys.Select(key => Dict[key]); }
}
}
Затем вы сможете сделать:
var sd = new SuperDictionary<string, object>();
/* Add values */
var res = sd["a", "b"];
Однако я никогда не встречал такого использования в .NET Framework или каких-либо сторонних библиотеках. Почему это реализовано? Какова практическая польза от возможности ввести индексатор params
?
params
. - person Kirill Shlenskiy   schedule 08.12.2015params
с индексатором. - person Matthew Watson   schedule 08.12.2015