最近,我发现索引器可以接受参数数组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
关键字来说,那是一个相当时髦的用法。 - Kirill Shlenskiyparams
。 - Matthew Watson