假设我有一个数组或任何其他集合类物质和返回它像以下属性:命名为indexer属性可能吗?
public class Foo
{
public IList<Bar> Bars{get;set;}
}
现在,我可以写这样的事:
public Bar Bar[int index]
{
get
{
//usual null and length check on Bars omitted for calarity
return Bars[index];
}
}
的'酒吧'属性已经支持指数,让我有点困惑,你试图完成什么。 – 2010-07-20 19:18:31
sure @Anthony'Foo f = new Foo(); f.Bars [0];'哇,我想我现在应该睡觉了! – TheVillageIdiot 2010-07-20 19:20:00
@AnthonyPegram你可能不想公开'Bars'。它可能是一个不应该成为'Foo'公共API的一部分的实现细节。而且,这暴露的不止是Bars的索引属性。 'Bars'可能是高度有状态的,暴露它可能会导致用户违反'Foo'承诺的不变量。 – Undreren 2017-08-31 07:03:48