C#面试题更新 2026-08-05

在 C# 中,若希望类的实例支持类似数组的下标访问,应如何定义索引器?请说明其语法结构、可用的访问修饰符以及使用场景。

技术原理C#

考察说明

考查对 C# 索引器定义语法与用途的理解。

回答思路

  1. 【回答框架 1】索引器允许对象通过 this 关键字后跟方括号参数来定义,语法为 public 返回类型 this[参数类型 参数名] { get; set; },其中参数可以是整数、字符串等类型。
  2. 【回答框架 2】索引器可重载,即同一类中可定义多个索引器,只要参数列表不同;访问修饰符可为 public、private 等,但通常为 public 以支持外部访问。
  3. 【回答框架 3】索引器常用于封装集合或字典,使访问更直观,例如自定义集合类中通过索引访问元素,或通过字符串键访问配置项。
  4. 【回答框架 4】与属性类似,索引器可只读或只写,通过仅实现 get 或 set 访问器实现;其内部逻辑可包含边界检查或默认值处理。
  5. 【回答框架 5】使用场景包括实现类似数组的容器、按名称访问的键值对集合,以及简化对内部数据结构的访问。
  6. 【关键点 1】索引器使用 this 关键字定义,参数列表决定访问方式。
  7. 【关键点 2】索引器可重载,支持多种参数类型。
  8. 【关键点 3】索引器访问器可控制读写权限。
  9. 【关键点 4】索引器常用于封装集合或字典访问。
  10. 【关键点 5】索引器与属性不同,属性无参数,索引器必须有参数。
  11. 【易错点 1】索引器参数类型不匹配时可能导致运行时异常,需进行类型检查。
  12. 【易错点 2】过度使用索引器可能降低代码可读性,应仅在语义清晰时使用。
  13. 【易错点 3】索引器不能为静态成员,必须绑定到实例。