何时使用索引器,以及如何知道如何编写索引器
本文关键字:索引 何编写 何知道 何时使 | 更新日期: 2023-09-27 18:36:35
// 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
是什么意思?我猜它是在说明如果它不在范围内,那么将新实例扔出范围。似乎很干脆,但我什么时候知道什么时候使用此异常?
我的问题只是如何以及何时知道使用索引器?
在方便的时候使用索引器,并且在处理对象方面有意义时使用索引器。例如,如果要实现自定义列表类型,则可能会提供一个索引器,以便方便、干净、类似列表的访问。如果要实现表示进程的类,则可能不会实现索引器,因为进程显然不是项的集合。
它的唯一要点是检查陈述是否属实吗?
不。甚至没有接近。关键是获取和/或设置集合中的项,由索引指定。
throw
是什么意思?我猜它是在说明如果它不在范围内,那么将新实例扔出范围。似乎很干脆,但我什么时候知道什么时候使用此异常?
这与索引器关系不大,而与异常关系更大。如果您尚未了解异常,请在了解时解决此问题。但这只是一个边界检查,并不是例外的唯一用途。
索引器用作通常通过索引或键访问集合中元素的速记方法。
在您的示例中,索引器允许获取指定index
的Account
。逻辑检查以确保index
的值在集合中的项范围内。
例如,如果集合中只有 2 个Account
,并且您请求索引 3 处的Account
,则您请求的项目不存在。因此IndexOutOfRangeException
.