// Indexer for the _accountList
public Account this[int index]
{
get
{
if (index >= 0 && index < _accountList.Length)
return _accountList[index];
else
throw new IndexOutOfRangeException("index is out of range");
}
}
这些是我所采取的一些注意事项,也是我们所涉及的内容,但在我的研究之后,我仍然对何时以及如何使用索引器这一理论感到朦胧。
我的问题是如何以及何时知道使用索引器?唯一的一点就是检查一个陈述是否属实?在哪里我可以为初学者更深入地阅读索引器?最后一行的异常是什么意思?
throw new IndexOutOfRangeException("index is out of range");
throw
是什么意思?我猜它说如果它不在范围内,那么将新实例抛出范围。看似切割和干燥但我什么时候知道何时使用此例外?
答案 0 :(得分:2)
我的问题是如何以及何时知道使用索引器?
在方便时以及在访问对象时有意义时使用索引器。例如,如果您要实现自定义列表类型,则可能会提供一个索引器,以实现方便,干净,类似列表的访问。如果您实现的是表示进程的类,则可能不会实现索引器,因为进程显然不是项集合。
唯一的一点是检查一个陈述是否属实?
没有。差远了。关键是获取和/或设置由索引指定的集合中的项目。
throw
是什么意思?我猜它说如果它不在范围内,那么将新实例抛出范围。看似切割和干燥但我什么时候知道何时使用此例外?
这与索引器关系不大,而与异常关系更多。如果您尚未了解异常,请在执行此操作时解决此问题。但它只是一个边界检查,并不是唯一使用异常的东西。
答案 1 :(得分:1)
索引器用作通常通过索引或键访问集合中元素的简写方式。
在您的示例中,索引器允许您获取指定Account
的{{1}}。逻辑检查以确保index
的值在集合中的项目范围内。
例如,如果集合中只有2个index
,并且您在索引3处要求Account
,那么您要求的项目不存在。因此Account
。