博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 索引器
阅读量:5036 次
发布时间:2019-06-12

本文共 1718 字,大约阅读时间需要 5 分钟。

  1. 属性与索引的区别
    属性 索引器
     通过名称标识  通过参数列表进行标识
     通过简单名称访问  通过[]运算符访问
     可以用static修饰  不能用static修饰
     get访问器没有参数  get访问器具有与索引相同的参数列表
     set访问器包含隐式value参数  除了value参数外,索引的set访问器还有与索引相同的参数列表
  2.  示例
1 class Person 2     { 3         private readonly string[] _data = new string[6]; 4         private readonly string[] _keys = { 5         "Name", "Age", "Sex" 6         }; 7  8         //注:程序中用了两种方法来索引: 9         //一是整数作下标,二是字符串(关键词名)作下标10         public string this[int idx]11         {12             set13             {14                 if (idx >= 0 && idx < _data.Length)15                     _data[idx] = value;16             }17             get18             {19                 if (idx >= 0 && idx < _data.Length)20                     return _data[idx];21                 return null;22             }23         }24         public string this[string key]25         {26             set27             {28                 int idx = FindKey(key);29                 this[idx] = value;30             }31             get32             {33                 return this[FindKey(key)];34             }35         }36         private int FindKey(string key)37         {38             for (int i = 0; i < _keys.Length; i++)39                 if (_keys[i] == key) return i;40             return -1;41         }42         static void Main(string[] args)43         {44             Person record = new Person();45             record[0] = "Jhon Snow";46             record[1] = "23";47             record["Sex"] = "男";48             Console.WriteLine(record["Name"]);49             Console.WriteLine(record["Age"]);50             Console.WriteLine(record[2]);51             Console.ReadLine();52         }53     }

 

转载于:https://www.cnblogs.com/David-Huang/p/4641016.html

你可能感兴趣的文章
浅谈 @RequestParam 和@PathVariable
查看>>
NSEnumerator用法小结
查看>>
redhat 7 源码安装 mysql5.5.49
查看>>
技术项目,问题
查看>>
Android官方技术文档翻译——ApplicationId 与 PackageName
查看>>
Feign使用Hystrix无效原因及解决方法
查看>>
Sam做题记录
查看>>
hexo 搭建博客
查看>>
建造者模式(屌丝专用)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
C++的引用
查看>>
python itertools
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
文件操作
查看>>
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
graphite custom functions
查看>>
ssh无密码登陆屌丝指南
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
[CF803C] Maximal GCD(gcd,贪心,构造)
查看>>