最近、インデクサーが引数の配列を次のように受け入れることができることがわかりました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
インデクサーを導入できることの実際の使用法は何ですか?