3 回答
TA贡献1851条经验 获得超4个赞
这是我们设计C#4的方式。
首先,我们列出了可以考虑添加到该语言的所有可能功能。
然后,我们将这些功能分类为“这很不好,我们绝对不能做”,“这太棒了,我们必须做”和“这很好,但这次我们不要做”。
然后,我们查看了设计,实施,测试,记录,运送和维护“必须拥有”功能所需的预算,发现我们超出了预算100%。
因此,我们将一堆东西从“必须拥有”存储桶移到了“不错拥有”存储桶。
索引属性永远不在“必须拥有”列表的顶部附近。他们在“好”列表上的位置很低,并且在“坏主意”列表上调情。
我们花在设计,实施,测试,记录或维护良好功能X上的每一分钟都是我们不能花在A,B,C,D,E,F和G等出色功能上的每一分钟。我们必须毫不留情地确定优先级,以便仅尽力而为。索引属性会很不错,但是不错的地方还差得远不能实际实现。
TA贡献1864条经验 获得超2个赞
AC#索引器是一个索引属性。它是Item默认命名的(您可以从VB中引用它),并且可以根据需要使用IndexerNameAttribute对其进行更改。
我不确定为什么要专门设计这种方式,但这似乎是故意的限制。但是,它与Framework Design Guidelines一致,后者确实建议使用非索引属性返回成员集合的可索引对象的方法。即“可索引”是一种类型的特征;如果可索引的方式不止一种,那么实际上应该将其分为几种类型。
TA贡献1834条经验 获得超8个赞
因为您已经可以做到这一点,并且迫使您在OO方面进行思考,所以添加索引属性只会给语言带来更多干扰。而这是做另一件事的另一种方式。
class Foo
{
public Values Values { ... }
}
class Values
{
public string this[int index] { ... }
}
foo.Values[0]
我个人更希望看到做某事的单一方法,而不是十种方法。但这当然是一个主观意见。
- 3 回答
- 0 关注
- 408 浏览
添加回答
举报