• 什么是索引器
      • 索引器(indexer)是这样一种成员:它使对象能够用与数组相同的方式(即使用下标)进行索引
    • 索引器的声明
      • 参加 C#语言定义文档
      • 注意:没有静态索引器

    Code Snippet
    index + 2 * TAB:快速声明索引器

    索引器一般都是用在集合上面,像如下示例这样用是很少见的(只是为了讲解方便)。

    1. class Program
    2. {
    3. static void Main(string[] args)
    4. {
    5. Student stu = new Student();
    6. stu["Math"] = 90;
    7. var mathScore = stu["Math"];
    8. Console.WriteLine(mathScore);
    9. }
    10. }
    11. class Student
    12. {
    13. private Dictionary<string, int> scoreDictionary = new Dictionary<string, int>();
    14. public int? this[string subject]
    15. {
    16. get
    17. {
    18. if (this.scoreDictionary.ContainsKey(subject))
    19. {
    20. return this.scoreDictionary[subject];
    21. }
    22. else
    23. {
    24. return null;
    25. }
    26. }
    27. set
    28. {
    29. if (value.HasValue==false)
    30. {
    31. throw new Exception("Score cannot be null.");
    32. }
    33. if (this.scoreDictionary.ContainsKey(subject))
    34. {
    35. this.scoreDictionary[subject] = value.Value;//int为可空类型,但是字典里的value不能为可空类型,所以要加“.Value”。
    36. }
    37. else
    38. {
    39. this.scoreDictionary.Add(subject, value.Value);
    40. }
    41. }
    42. }
    43. }