クラスの場合、C# で演算子 [] をオーバーロードすることは可能ですか?
もしそうなら、オーバーロードされた関数 [] を宣言する正しい構文は何ですか?
また、演算子 [] は、指定されたパラメーターに基づいて異なるデータ型を返すことができますか? そうでない場合、私の他の解決策は何だと思いますか? 代わりにオブジェクトを使用する必要がありますか?
public class MyClass {
private Dictionary<string,Element> eAttribs;
private Dictionary<string,string> defAttribs;
// Also can the operator [] returns different data types based off the parameter given?
// If not, what do you think is my other solution?
public Element operator[](string attribKey) {
if (eAttribs.containsKey(attribKey)
return eAttribs[attribKey];
else return null;
}
// COMPILE Error below: Unexpected symbol '['
public string operator[](string attribKey) {
if (defAttribs.containsKey(attribKey)
return defAttribs[attribKey];
else return null;
}
}