クラスにインデクサーを適用できます。
カプセル化が向上するため、推奨されます。たとえば、元のコードを使用して Dictionary を別の辞書に完全に置き換えることは完全に可能です。これは望ましくない可能性があります。
public class MyClass
{
// Note that dictionary is now private.
private Dictionary<Beep, String> Stuff { get; set; }
public String this[Beep beep]
{
get
{
// This indexer is very simple, and just returns or sets
// the corresponding element from the internal dictionary.
return this.Stuff[beep];
}
set
{
this.Stuff[beep] = value;
}
}
// Note that you might want Add and Remove methods as well - depends on
// how you want to use the class. Will client-code add and remove elements,
// or will they be, e.g., pulled from a database?
}
使用法:
MyClass myClass = new MyClass();
string myValue = myClass[Beep.LetsGo];