首页 > 其他分享 >索引器

索引器

时间:2022-10-09 14:35:02浏览次数:38  
标签:index return string mc 索引 index2 index1

一。声明与使用

      像数组一样访问数据,像属性一样的经构

using System;

namespace Indexer
{
    class Employee
    {
        private string LastName;
        private string FirstName;
        private string CityOfBirth;

        public string this[int index]
        {
            set
            {
                switch(index)
                {
                    case 0: LastName = value;
                        break;
                    case 1: FirstName = value;
                        break;
                    case 2: CityOfBirth = value;
                        break;

                    default:
                        throw new ArgumentOutOfRangeException("index");
                }
            }

            get
            {
                switch(index)
                {
                    case 0: return LastName;
                    case 1: return FirstName;
                    case 2: return CityOfBirth;

                    default:
                        throw new ArgumentOutOfRangeException("index");
                }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Employee employee = new Employee();
            employee[0] = "Qian";
            employee[1] = "Keefe";
            employee[2] = "LuJiang";

            Console.WriteLine($"{employee[0]} {employee[1]} {employee[2]}");
        }
    }
}

二。索引器重载

using System;

namespace IndexerOverload
{
    class MyClass
    {
        string Temp0;
        string Temp1;
        string Temp2;
        string Temp3;

        int MyInt0 = 0;
        int MyInt1 = 1;

        public string this[int index]
        {
            get
            {
                return (0 == index) ? Temp0 : Temp1;
            }
            set
            {
                if (0 == index) Temp0 = value;
                else Temp1 = value;
            }
        }

        public string this[int index1, int index2]
        {
            get
            {
                if (index1 == 0 && index2 == 0) return Temp0;
                if (index1 == 0 && index2 == 1) return Temp1;
                if (index1 == 1 && index2 == 0) return Temp2;
                if (index1 == 1 && index2 == 1) return Temp3;

                throw new ArgumentOutOfRangeException("index");
            }
            set
            {
                if (index1 == 0 && index2 == 0) Temp0 = value;
                if (index1 == 0 && index2 == 1) Temp1 = value;
                if (index1 == 1 && index2 == 0) Temp2 = value;
                if (index1 == 1 && index2 == 1) Temp3 = value;

                //throw new ArgumentOutOfRangeException("index");
            }
        }


        public int this[float index]
        {
            get
            {
                if (index < 1.0)
                {
                    return MyInt0;
                }
                else
                {
                    return MyInt1;
                }
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyClass mc = new MyClass();
            mc[0] = "Illustrated";
            mc[1] = "C# 7";
            Console.WriteLine($"{mc[0]} {mc[1]}");

            mc[1, 0] = "Fifth Edition";
            mc[1, 1] = "Daniel Solis & Cal Schrotenboer";
            Console.WriteLine($"{mc[0]} {mc[1]} {mc[1, 0]} {mc[1, 1]}");

            Console.WriteLine($"{mc[0.4f]} {mc[1.3f]}");
        }
    }
}

 

标签:index,return,string,mc,索引,index2,index1
From: https://www.cnblogs.com/duju/p/16771990.html

相关文章

  • MyISAM 和 InnoDB 索引实现
     MyISAM索引实现MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是......
  • Linux_Bash_Shell_索引数组和关联数组及稀疏数组
     1. 索引数组 一、什么是索引数组?所谓索引数组就是普通数组,以整数作为数组元素的索引下标。   二、实例。  备注:(a)使用-a选项定义索引数组,使用一对......
  • mysql 删除索引 Cannot drop index 'IX_t_billing_setup_CustomerID_WarehouseID': n
     --创建表createtablet_billing_setup(BillingSetupIDintnotnullauto_incrementcomment'编号',CustomerIDintnotnullcomment'',......
  • db2 表、视图、索引
    一、表1、概述所有数据都存储在数据库的表中,表由不同数据类型的一列或多列做成数据存储在行(或称为记录)中表使用createteble语句定义的2、创建表createtableemployee(idI......
  • 力扣599(java&python)- 两个列表的最小索引总和(简单)
    题目:假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐......
  • 索引的建立原则, 如何避免索引失效
    源自面试鸭建立索引1.经常使用的字段2.字段最好唯一3.字段类型尽量用数值型,减少字符类型4.对于带条件和排序字段的字段建立索引5.频繁出现在where条件后面的字......
  • filebeat采集log日志,并自定义索引
    filebeat配置:filebeat.inputs:#Each-isaninput.Mostoptionscanbesetattheinputlevel,so#youcanusedifferentinputsforvariousconfigurations.......
  • day07-2MySQL索引
    MySQL索引说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,查询速度就能提高千百倍。例子首先,创建一个有800万条数据的表--创建测试数......
  • ES 索引模块
    分析模块索引分析模块作为一个可配置的分析器注册表,可用于将一个字符串字段转换为单独的术语,这些术语被。添加到倒置的索引中,以使文件可以被搜索到被高水平的查询所使用,......
  • Mysql索引
    索引概念:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可提高数据库中特定数据的查询速度。索引特点:索引的优点主要有以下几条:(1)通过创建唯一索引,可以保......