索引器何时可以自动将项添加到集合/字典中?这是合理的,还是违背了最佳做法?
public class I { /* snip */ }
public class D : Dictionary<string, I>
{
public I this[string name]
{
get
{
I item;
if (!this.TryGetValue(name, out item))
{
item = new I();
this.Add(name, item);
}
return item;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在集合中使用它的示例:
public class I
{
public I(string name) {/* snip */}
public string Name { get; private set; }
/* snip */
}
public class C : Collection<I>
{
private Dictionary<string, I> nameIndex = new Dictionary<string, I>();
public …Run Code Online (Sandbox Code Playgroud)