我有关于VB / C#
的(转储)问题我经常使用第三方类,我只能指定id或密钥来访问子对象。
示例:
而不是写作:
DataRow row = GetAPopulatedDataRowSomeWhere();
Object result = row.Items[1]; // DataRow has no Items property
Object result = row.Items["colName"]; // Also not possible
我使用此代码访问成员:
DataRow row = GetAPopulatedDataRowSomeWhere();
Object result = row[1];
Object result = row["colName"];
有人可以告诉我一个类如何支持这种语法? 我自己的类有一个我想以这种方式访问的词典。
MyClass["key"]; // <- that's what I want
MyClass.SubItems["key"]; // <- that's how I use it now
答案 0 :(得分:11)
您需要indexed property。
public class MyClass
{
public object this[string key]
{
get { return SubItems[key]; }
set { SubItems[key] = value; }
}
}