属性和索引器的差别:一个对象只有一个属性值,所以要存放多个值必须实例化多个对象(通常情况下,实例化一个数组的对象,接着实例化的对象赋给这个数组)。一个对象对应的索引是一个数组,并且可以存放多个数值或字符串,所以只需要实例化一个对象就可以存放以及访问多个存储内容。
using System;
using System.Collections.Generic;

namespace aaa
{

public class arrClass{ //通过构造方法以及属性进行赋值
   private string name;//定义一个字段
   public string Name{ //定义一个属性,通过属性来修改name字段的值
    get{return name;} //通过Name来获取name的值
    set{name=value;} //通过Name将值赋给name字段
   }
   public arrClass(string name){ //构造函数,实例化一个对象就执行一次
    this.Name=name; //把实例化对象带进来的参数name赋值给Name属性
   }
}

class indexer{ //创建一个索引器类
   private string[] name=new string[10];//定义一个索引字段数组,也可以为int[]
   public string this[int index]{ //定义索引器,string是索引器类型,this来定义索引器
    get{return name[index];} //index就是string里面的数值,获取name[index]的值,例如获取name[3]的值
    set{name[index]=value;} //将值赋值给name[index]。例如把字符串"dengyun"赋值给name[3]
   }
}

class index1{ //这里又创建了一个索引器类
   private int[] age=new int[10]; //这边索引器字段的值为int型的
   public int this[int index]{
    get {return age[index];} //获取age[index]的值
    set {age[index]=value;} //赋值
   }
}

class MainClass{
   public static void Main(string[] args) //主方法一定要为static
   {
    indexer b=new indexer(); //实例化一个索引对象b,b有点类似数值b[10],这是索引器的特别之处
    b[0]="张三";//这里面b[index]的index为0,赋值“张三”给b[0]
    b[1]="李四";//赋值“李四”给b[1]
    b[2]="王五";//赋值“王五”给b[2]
    Console.WriteLine(b[0]);//输出b[0],可以理解为数值就存放在数组b中。
    Console.WriteLine(b[1]);
    Console.WriteLine(b[2]);
  
    arrClass[] a = new arrClass[10];//实例化一组对象,实例化一整个数组的对象
    a[0]=new arrClass("张三");//实例化一个对象,将它存入实例化的数组a中,它的存放位置是a[0]
    a[1]=new arrClass("李四");
    a[2]=new arrClass("王五");
    Console.WriteLine(a[0].Name);//通过对象来访问自己的属性值来输出数值
    Console.WriteLine(a[1].Name);
    Console.WriteLine(a[2].Name);
  
    index1 i = new index1(); //和带属性的类相比,索引器类只需要实例化一个对象
    i[0]=18;
    i[1]=22;
    i[9]=9;
    i[10]=10;//索引超出了,报错。
    Console.WriteLine(i[0]);
    Console.WriteLine(i[1]);
    Console.WriteLine(i[9]);
    Console.WriteLine(i[10]);
    Console.Read();
   }
}
}

C#索引器-索引器和属性的区别相关推荐

  1. python的实例类方法、修饰器类方法、修饰器保护方法、修饰器静态方法中私有属性的区别和自定义property的读写方法

    class Cla:__count=0def __init__(self,v):self.__value=vCla.__count+=1def show(self):print('普通实例方法访问私有 ...

  2. C#索引器与属性的区别、索引器的具体使用

    C#中索引器和属性类似,但也有一些区别: a.    属性可以调用方法就如同他们是公共数据成员,而索引器可以调用对象上得方法,如同对象是一个数组. b.    属性可以通过简单的名称访问, 而索引器需 ...

  3. MongoDB 教程五: MongoDB固定集合和性能优化 (索引Indexes, 优化器, 慢查询profile)

    mongodb索引详解(Indexes) 索引介绍 索引在mongodb中被支持,如果没有索引,mongodb必须扫描每一个文档集合选择匹配的查询记录.这样扫描集合效率并不高,因为它需要mongod进 ...

  4. C#索引器-索引器的定义

    索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员.定义索引器的语法如下: ...

  5. C#索引器-索引器概述

    数组中的元素可以通过索引进行检索,如果一个类中有很多对象,怎样简单.快速地查找到需要的对象以及对象的特性呢?索引器就是为了实现这样的功能而设计的.索引器允许类或结构的实例按照与数组相同的方式进行索引. ...

  6. 【转】C#索引器-索引器的定义

    索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员.定义索引器的语法如下: ...

  7. Unity着色器常用关键字及属性

    看了好多次shader,不过还是感觉无从下手的去写shader,然后看shader的效果 个人认为还是因为shader基础打得不够扎实,顾特意再重温shader相关书籍的时候,看见有些常用关键字时,把 ...

  8. java类向拦截器传值_MyBatis拦截器:给参数对象属性赋值的实例

    该拦截器的作用:在进行增加.修改等操作时,给数据模型的一些通用操作属性(如:创建人.创建时间.修改人.修改时间等)自动赋值. 该实现是在dao层拦截,即存入db前最后一层.后经分析,不是很合理,改为在 ...

  9. vue 侦听器侦听对象属性_Spring中的异步和事务性事件侦听器

    vue 侦听器侦听对象属性 内置的事件发布功能从Spring的早期版本开始存在,并且对于处理同一应用程序上下文中Spring组件之间的基本通信仍然有用. 通常,应用程序可以生成应用程序事件(可以是任意 ...

  10. vue 侦听器侦听对象属性_不删除侦听器–使用ListenerHandles

    vue 侦听器侦听对象属性 听一个可观察的实例并对它的变化做出React很有趣. 做一些必要的事情来打断或结束这种聆听会变得很有趣. 让我们看看问题的根源和解决方法. 总览 这篇文章将首先讨论这种情况 ...

最新文章

  1. 基于Spring Boot+Cloud构建微云架构
  2. 怎样快速使用富文本编辑器
  3. [云炬创业基础笔记]第六章商业模式测试23
  4. cadence -- FPM0.0.8.0生成skill工具集的方法
  5. SAP Spartacus的用户登录请求
  6. winfrom导出DataGridView为Excel方法
  7. 语言课设医院诊疗系统_江苏孤独症孩子有哪些典型特征?上海六一儿童医院
  8. C++ const用法 尽可能使用const
  9. TOCControl 的HitTest()方法
  10. 一次线上OOM过程的排查
  11. linux上sh工具如何使用,怎样用 Bash 编程:语法和工具 | Linux 中国
  12. html5视频播放解决方案
  13. DHCP配置实验(包括接口模式、全局模式和中继模式)
  14. 自动驾驶的三维点云处理与学习
  15. MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/...
  16. java做2048_java版实现2048游戏功能
  17. “会说话的汤姆猫家族-时代逐光者”3D数字藏品中奖名单公布
  18. OpenJudge百炼习题解答(C++)--题4108:羚羊数量-Number Of Antelope
  19. 《科学之路》| 图灵奖得主杨立昆人工智能十问:AI会统治人类吗?
  20. Android内存泄漏leakcanary2.7

热门文章

  1. python编程课程-python编程_课程设置
  2. 黎曼猜想证明现场:3分钟核心讲解、提问陷沉默,同行不予置评 | 全程视频+PPT...
  3. 第六章:项目进度管理 - (6.5 制定进度计划)
  4. 实习总结之如何做好产品经理?
  5. IT学习网站推荐排行
  6. 【蓝桥杯】基础练习 01字串 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
  7. 全国通用ADSL宽带账号快速检测工具0.2 拽爷 专版
  8. 2005年1月4日 东西到了
  9. 华米:2014年做智能手环踩过的那些坑
  10. 异步线程RequestContextHolder为空问题