C# 类 索引器 概念

类索引器

将实例对象中的不同字段分别映射到不同的下标,通过类似数组的方式访问对象,和属性一样可以get/set

using System;

namespace Hello
{
    class Shape
    {
        private int _width;
        private int _height;

        public int this[int index]
        {
            set
            {
                // 指定下标对应的字段
                switch (index)
                {
                    case 0:
                        this._width = value;
                        break;
                    case 1:
                        this._height = value;
                        break;
                }
            }
            get
            {
                switch (index)
                {
                    case 0:
                        return this._width;
                    case 1:
                        return this._height;
                    default:
                        throw new IndexOutOfRangeException("不存在该下标对应的字段");
                }
            }
        }

    }
    public class Program
    {
        public static void Main()
        {
            Shape shape = new Shape();
            // 此时shape中的字段分别对应不同的下标,超出则会报错
            shape[0] = 12;
            shape[1] = 20;
            Console.WriteLine("width = {0}, height = {1}", shape[0], shape[1]);
        }
    }
}

原文地址:https://www.cnblogs.com/esrevinud/p/12014094.html

时间: 2024-11-13 07:00:28

C# 类 索引器 概念的相关文章

C#类索引器的使用

索引器提供了一种可以让类被当作数组进行访问的方式.在C#中,类索引器是通过this的属性实现的.index.ToString("D2")将index转换成一个具有两个字符宽度的字符串 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ClassIndexer { /// <summary> /// define a class cal

C#入门--索引器

C#入门--索引器 索引器允许类或结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数. 索引器概述 索引器使得对象可按照与数组相似的方法进行索引. get 访问器返回值.set 访问器分配值. this 关键字用于定义索引器. value 关键字用于定义由 set 索引器分配的值. 索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制. 索引器可被重载. 索引器可以有多个形参,例如当访问二维数组时. class SampleCollection<T

描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

不是.可以用任意类型. 索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作. 定义索引器的方式与定义属性有些类似,其一般形式如下: [修饰符] 数据类型 this[索引类型 index] { get{//获得属性的代码} set{ //设置属性的代码} } 修饰符包括 public,protected,priva

[转]C#索引器

索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作. 定义索引器的方式与定义属性有些类似,其一般形式如下: [修饰符] 数据类型 this[索引类型 index] { get{//获得属性的代码} set{ //设置属性的代码} } 修饰符包括 public,protected,private,internal,

索引器 C#

概述 索引器允许类或结构的实例就像数组一样进行索引. 索引器类似于属性,不同之处在于它们的访问器采用参数. 在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 访问器方法(作为分配和检索值的方法). Program 类为存储字符串创建了此类的一个实例. Code 1 class SampleCollection<T> 2 { 3 // Declare an array to store the data elements. 4 private T[] arr = new

C# 类中索引器的使用二

索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便.直观的被引用.索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用.定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员.(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等) 本文只是简单演示一下索引器的概念和基本的使用方法: 请看代码,下面是类的定义,中间包含了一个索引器定义 类的定义 public class Person { //

18._5索引器在类中的使用

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _18._5索引器在类中的使用 { class Program { public class indexText //访问类实例 { private int[] array = new int[10]; public int this[int in

索引器与数组类定义练习

using System; class ArrClass { //没有索引器的类 private readonly string name; public ArrClass(string name) { this.name = name; } public string Name { get { return name; } } } class IndexClass { //带索引器的类 private string[] name = new string[10]; public string

C# 类如何声明索引器以提供对类的类似数组的访问的代码

研发期间,将内容过程中比较常用的内容段做个收藏,如下内容内容是关于 C# 类如何声明索引器以提供对类的类似数组的访问.的内容,希望能对各位有用处. using System;using System.IO; public class FileByteArray{ public FileByteArray(string fileName) { stream = new FileStream(fileName, FileMode.Open); } public void Close() { stre