可能重复:
带有索引器和名为“Item”的属性的类
刚刚遇到一些我以前从未见过的东西,想知道为什么会发生这种情况?
使用以下类,我得到关于“Item”和“this [...]”的编译器错误“已声明具有相同名称的成员”。
public class SomeClass : IDataErrorInfo
{
public int Item { get; set; }
public string this[string propertyName]
{
get
{
if (propertyName == "Item" && Item <= 0)
{
return "Item must be greater than 0";
}
return null;
}
}
public string Error
{
get { return null; }
}
}
编译器似乎认为 this[...] 和 Item 使用相同的成员名称。这是正确/正常的吗?我很惊讶我以前没有遇到过这种情况。