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#中的类成员可以是任意类型,包括数组和集合.当一个类包含了 ... 
随机推荐
- GCC 7.3.0版本编译http-parser-2.1问题
			http-paser是一个用c编写的http消息解析器,地址:https://github.com/nodejs/http-parser,目前版本2.9 今天用gcc 7.3.0编译其2.1版本时,编 ... 
- css :before 内容左边 分割线(四)
			商品 左边分割线,使用css伪类实现,before or after <style> *{ margin:; padding:; } .clearfix { *zoom:; } .cle ... 
- SpringBoot内嵌Tomcat开启APR模式(运行环境为Centos7)
			网上查到的一些springboot内嵌的tomcat开启apr的文章,好像使用的springboot版本较老,在SpringBoot 2.0.4.RELEASE中已经行不通了.自己整理了一下,供参考. ... 
- (转)Linux运维MySQL必会面试题100道
			老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口 ... 
- ios 得到每周的星期一开始和星期天结束的日期
			得到每周 星期一零点(即本周的开始) 和星期天 24 点(即本周的结束和下一周的开始)的时间 NSDate *now = [NSDate date]; NSCalendar *calendar = [ ... 
- ios UITableView 异步加载图片并防止错位
			UITableView 重用 UITableViewCell 并异步加载图片时会出现图片错乱的情况 对错位原因不明白的同学请参考我的另外一篇随笔:http://www.cnblogs.com/lesl ... 
- 010-JedisUtils工具类模板
			redis.properties配置文件 redis.maxIdle=30 redis.minIdle=10 redis.maxTotal=100 redis.url=192.168.204.128 ... 
- Sed - An Introduction and Tutorial by Bruce Barnett
			http://www.grymoire.com/unix/sed.html Quick Links - NEW Sed Commands : label # comment {....} Block ... 
- 【转】C#中的委托,匿名方法和Lambda表达式
			简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ... 
- js验证护照号码是否合规
			需求:最近要做实名验证的功能,但是验证我们要验证严谨一点,参考了网上关于验证护照号码的代码,总结一下. 代码: //验证护照号码 function checkPassport(code){ var t ... 
