c#编程指南(六) 类索引器(Class Indexer)
类索引器,可以使得你使用数组一样的方式来访问类的数据。
这种访问多见于数组,列表,词典,哈希表的快捷访问。
实际上写法很简单,写成:public T1 this[T2 i]
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing; namespace Indexer
{
public class Test
{
private List<string> _lstTest = new List<string>(); public List<string> Items
{
get { return _lstTest; }
set { _lstTest = value; }
} public string this[int i]
{
get {
if ((i >= ) && (i < _lstTest.Count)) return _lstTest[i];
else throw new IndexOutOfRangeException("the error index is " + i);
} set {
if ((i >= ) && (i < _lstTest.Count)) _lstTest[i] = value;
else throw new IndexOutOfRangeException("the error index is " + i);
}
} public string this[string s] { get { return "Test Return " + s; } } public string this[Color c] { get { return c.ToString(); } }
} class Program
{
static void Main(string[] args)
{
Test test = new Test(); test.Items.Add("test1");
test.Items.Add("test2");
test.Items.Add("test3");
for (int i = ; i < test.Items.Count; i++)
{
Console.WriteLine(test[i]);
} Console.WriteLine("----------------------------------------------------------");
test[] = "test4";
for (int i = ; i < test.Items.Count; i++)
{
Console.WriteLine(test[i]);
} Console.WriteLine("----------------------------------------------------------");
Console.WriteLine(test["香山飘雪"]); Console.WriteLine("----------------------------------------------------------");
Console.WriteLine(test[Color.BlueViolet]);
}
}
}
很简单吧,
第一个,我定义了一个可读可写的以int为参数的索引器。
第二个,我定义了一个可读的以string为参数的索引器。
第三个,比较搞怪了,我定义了一个color参数的索引器。
c#编程指南(六) 类索引器(Class Indexer)的更多相关文章
- C#类索引器的使用
索引器提供了一种可以让类被当作数组进行访问的方式.在C#中,类索引器是通过this的属性实现的.index.ToString("D2")将index转换成一个具有两个字符宽度的字符 ...
- 【Unity|C#】基础篇(7)——属性(Property)/ 索引器(Indexer)
[学习资料] <C#图解教程>(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.c ...
- 雷林鹏分享:C# 索引器(Indexer)
C# 索引器(Indexer) 索引器(Indexer) 允许一个对象可以像数组一样被索引.当您为类定义一个索引器时,该类的行为就会像一个 虚拟数组(virtual array) 一样.您可以使用数组 ...
- JavaScript面向对象编程指南(六) 继承
第6章 继承 6.1 原型链 6.1.1原型链示例 原型链法:Child.prototype=new Parent(); <script> function Shape(){ this.n ...
- 把C#对象变成数组技术---索引器(indexer)
public class IndexerDemo { IList list = new List(); public IndexerDemo() { list.Add("); list.Ad ...
- 索引器(C# 编程指南)
原文地址:https://msdn.microsoft.com/zh-cn/library/6x16t2tx(VS.80).aspx 索引器允许类或结构的实例按照与数组相同的方式进行索引.索引器类似于 ...
- C#入门--索引器
C#入门--索引器 索引器允许类或结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数. 索引器概述 索引器使得对象可按照与数组相似的方法进行索引. get 访问 ...
- set,get方法(属性,索引器)
很多时候我们不可以把一些字段暴露出来允许别人调用和修改,为了隐藏这些字段又便于加限制的使用,在面向对象编程中一般采用写get set函数的办法,比如: //字段_age, "_"表 ...
- 描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
不是.可以用任意类型. 索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了 ...
随机推荐
- 构造函数与普通函数关于“new”操作符
javascript中构造函数与普通函数的区别还有关于“new”操作符的一些原理 有一种创建对象的方法叫做工厂模式,例如: 1 function person(name,age){ 2 var o ...
- 2019.03.29 读书笔记 关于params与可选参数
void Method1(string str, object a){} void Method2(string str, object a,object b) { } void Method3(st ...
- Linux下jdk安装过程
注意:rpm 与软件相关命令 相当于 window 下的软件助手 管理软件 1 查看当前 Linux 系统是否已经安装 java 1)在命令窗口输入,可以查看系统自带的OpenJDK版本信息. jav ...
- C指针总结
取内容* 从右至左 取地址& 从右至左 同类型指针变量关系运算是有意义的. 指针变量和数组名都表示数组的地址,但是数组名是地址常量. *p++和(*p)++不同.*p++的赋值结果跟*p相同, ...
- step1: python & scrapy安装
#首先安装python,这里安装python所需依赖包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-dev ...
- location.false(true)
location.reload()意思是从服务器端重新载入页面 ; location.false(true)意思是从缓存中重新载入.
- ,SQL语句关键词以及实例
1.select:功能:查找,语法:select 列名 from 表名(注:可以一次从一个表中查询多个列或者从多个表名中查询资料) 实例:select Name from Table1,返回Table ...
- redis(5)持久化
一.持久化 计算机的数据有两种状态: 1)持久态:如硬盘上的数据 2)瞬时态:如内存当中的数据 持久化就是将瞬时数据转换为持久数据的一个过程,但注意持久化并不意味的数据永远存在,针对不同的持久化,数据 ...
- springboot项目作为war包运行
一.首先是pom文件中设置打成war包 < packaging>war< /packaging> 二.然后是修改依赖: <dependency> <group ...
- hdu 1561 树形背包 选k个最大价值
http://blog.csdn.net/dellaserss/article/details/8799730 这题其实和上一题思路是一样的,一个0节点作为根节点,通过剩余量来遍历子树. #inclu ...