的实际使用,我最近发现,索引可以接受的参数数组作为params
: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'关键字的一个非常时髦的用例。 –
索引器只是应用于常规方法的语法糖(强制它至少有一个参数)。由于常规方法需要*形式参数列表*(在C#语言规范的第10.6.1节中定义),并且*形式参数列表*可能包含*参数数组*,这意味着您可以使用' params'与索引器。 –