|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- using System;
- class Indexr//利用两个数组,两个索引器,一个函数,做一个字典
- //在data数组里存value,在keys数组里存key
- //通过一个函数从keys数组中的字符串找对应的value数组中的字符串
- {
- private string[] data = new string[6];//声明有6个字符串的数组,此时是6个null?
- //声明有6个字符串的数组
- private string[] keys =
- {
- "1","2","3","4","5","6"
- };
- //用两种方法来索引
- //1,整数做下标,2,关键词作下标
- //是不是可以理解为利用数组,做了一个字典?
- public string this[int idx]//this指的是成为对象的类,这边做的是以整数为下标的
- //使用以data这数组,把值赋入data这个数组
- {
- set
- {
- //用此设置值?,对象中设置: 类对象[数字]=value
- if (idx >= 0 && idx < data.Length)
- data[idx] = value;//重点:data数组的下标等于value
- }
- get
- {
- if (idx >= 0 && idx < data.Length)
- return data[idx];
- return null;
- }
- }
- public string this[string key]//关键字索引器
- {
- set
- {
- int idx = findkey(key);//这边应该先要做一个输入的key与数字下标对应的函数
- this[idx] = value;//这边也是可以设置的value,this是哪个数组?
- }
- get
- {
- return this[findkey(key)];//这边的当前对象是哪个数组?
- }
- }
- private int findkey(string key)
- //***这边是输入关键词,返回需要的下标数字的函数
- {
- for (int i = 0; i < keys.Length; i++)
- if (keys[i] == key)//如果keys数组的第几个==关键词的话,输出第几个
- return i;
- return -1;
- }
- static void Main()
- {
- Indexr r = new Indexr();
- //类加[]为索引器
- r[0] = "马克";//为类对象设置value
- r[1] = "图文";
- r[2] = "汤姆";
- Console.WriteLine(r["1"]);
- Console.WriteLine(r["2"]);
- Console.WriteLine(r["3"]);
复制代码
我看到是说指代当前对象应该也就是这个类,但是在this[idx] = value和return this[findkey(key)]这里,明显this就是说的data这个数组,为啥不是keys这个数组呢?
类,是对具有某种,某几种特种的事物的抽象,是一个虚拟的概念。
对象,是具有某种特征的一个实际个体。
比如说,全世界的人,有一个共同的类: 人类。我们每一个真实的人(无论或者还是死了)都是"人类"这个类的一个对象。
this 指针,指代当前对象,如果这对象是你, ghsydota, this 就是你,如果这个对象是 fygod, 那 this 就是 fygod。
|
|