索引器

原创 2016年08月28日 16:53:04

示例代码:
Employee.cs

using System;
class Employee
    {
        private string name;
        private int age;
        private int id;

        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }

        public int Age
        {
            get { return this.age; }
            set { this.age = value; }
        }

        public int ID
        {
            get { return this.id; }
        }

        public Employee(int id)
        {
            this.id = id;
        }

        public override string ToString()
        {
            return this.Name + ", " + this.Age + ", " + this.id;
        }
    }

Manager.cs

using System;
using System.Collections.Generic;
class Manager
    {
        private Dictionary<int, Employee> employees;

        public Manager()
        {
            this.employees = new Dictionary<int, Employee>();

            // initialize employees
            Employee employee1 = new Employee(1001)
            {
                Name = "Owen",
                Age = 22
            };
            Employee employee2 = new Employee(1002)
            {
                Name = "Vincent",
                Age = 21
            };
            Employee employee3 = new Employee(1003)
            {
                Name = "Ricy",
                Age = 20
            };

            // add employees to the dictionary
            this.employees.Add(employee1.ID, employee1);
            this.employees.Add(employee2.ID, employee2);
            this.employees.Add(employee3.ID, employee3);
        }

        public Employee this[int id]
        {
            get
            {
                Employee employee = null;
                this.employees.TryGetValue(id, out employee);
                return employee;
            }

            set
            {
                if (value != null)
                    this.employees[id] = value;
            }
        }

        public Employee this[string name]
        {
            get
            {
                var ems = this.employees.Values;
                foreach(var em in ems)
                {
                    if (em.Name.Equals(name))
                        return em;
                }
                return null;
            }
        }
    }

Program.cs

using System;
class Program
    {
        public static void Main()
        {
            Manager manager = new Manager();

            Console.WriteLine(manager[1001]);
            Console.WriteLine(manager["Ricy"]);

            Console.ReadLine();
        }
    }

运行结果:
运行结果

版权声明:本文为博主原创文章,未经博主允许不得转载。

C#中的索引器的简单理解和用法

转自:http://www.cnblogs.com/skm-blog/archive/2013/06/04/3117547.html 索引器是一种特殊的类成员,它能够让对象以类似数组的方式来...
  • a769901686
  • a769901686
  • 2014年03月05日 15:51
  • 2449

C#学习笔记--this关键字和索引器

this关键字和索引器
  • chensi16114
  • chensi16114
  • 2016年07月13日 09:34
  • 3895

C#接口定义,索引器的定义

Normal07.8 磅02falsefalsefalseEN-USZH-CNX-NONE
  • lxf544207706
  • lxf544207706
  • 2010年10月31日 21:31
  • 3158

索引器与泛型和接口

 索引器与泛型class SampleCollection{    private T[] arr = new T[100];    public T this[int i]    {        ...
  • luqinghua
  • luqinghua
  • 2007年01月26日 14:17
  • 796

C#语法小知识(六)属性与索引器

属性是一种成员,它提供灵活的机制来读取、写入或计算私有字段的值。 属性可用作公共数据成员,但它们实际上是称为“访问器”的特殊方法。 这使得可以轻松访问数据,还有助于提高方法的安全性和灵活性。 索引...
  • ecidevilin
  • ecidevilin
  • 2016年09月13日 14:54
  • 1399

CSharp中索引器的简单使用

索引器(indexer)是一种特殊的类方法 ,允许使用一个看起来像获取数组元素一样的方法来访问类的内部数据 。下面使用BitList类来演示 indexer的简单用法 。   在BitList类中 ...
  • jackzhang083
  • jackzhang083
  • 2014年01月01日 09:33
  • 682

Java Lucene(7):编写索引器之二

Java lucene 技术(7) : 编写索引器之二程序6-2实现了基本的中文分词功能,可供读者参考: public class MyselfChineseTokenizer {          ...
  • tornadowp
  • tornadowp
  • 2008年02月29日 11:06
  • 2276

索引器-索引器与数组属性的比较

url:  http://m.oschina.net/blog/29567 索引器(Indexer) 索引器允许类或结构的实例按照与数据相同的方式进行索引。索引器类似于属性,不同之处在于它...
  • daimeisi123
  • daimeisi123
  • 2016年04月27日 15:17
  • 458

细谈C#中的索引器跟属性的区别

细谈C#中的索引器跟属性的区别:索引器允许您按照与数组的方式对类、结构、接口进行索引。注意要声明类或结构上的索引,一定要使用this关键字,比如:public int this [int index]...
  • codeshark
  • codeshark
  • 2007年11月24日 15:04
  • 3038

2016-03-20枚举、结构、索引器值类型、引用类型

枚举、结构、索引器值类型、引用类型类1、声明格式class Book { //内容 } 2、类的成员 {% highlight C# linenos %} publ...
  • u010287117
  • u010287117
  • 2016年03月22日 20:12
  • 372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:索引器
举报原因:
原因补充:

(最多只允许输入30个字)