• 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 called AClass,which has only one private variable
        /// </summary>
       class AClass {
           private string _name;
           public string Name {
               get { return this._name; }
               set { this._name = value; }
           }
           public AClass(string name) {
               this._name = name;
           }
        }
        /// <summary>
        /// AClassContainer class
        /// </summary>
       class AClassContainer {
           private AClass[] _AClassList;
           public AClassContainer() {
               this._AClassList = new AClass[10];
           }
           public AClassContainer(int cap) {
               this._AClassList = new AClass[cap];
           }
           /// <summary>
           /// class indexer by using int 
           /// </summary>
           /// <param name="index"></param>
           /// <returns></returns>
           public AClass this[int index] {
               get {
                   if ((index < 0) || (index > this._AClassList.Length)) return null;
                   else return this._AClassList[index];
               }
               set {
                   if ((index < 0) || (index > this._AClassList.Length)) return;
                   else this._AClassList[index] = value;
               }
           }
           /// <summary>
           /// class indexer by using string
           /// </summary>
           /// <param name="name"></param>
           /// <returns></returns>
           public AClass this[string name] {
               get {
                   foreach (AClass cls in this._AClassList) {
                       if (cls.Name == name) return cls;
                   }
                   return null;
               }
           }
       }
        class Program
        {
            static void Main(string[] args)
            {
                int count = 10;
                AClassContainer classContainer = new AClassContainer(count);
                for (int index = 0; index < count; index++) {
                    string name = index.ToString("D2");
                    classContainer[index] = new AClass(name);
                }
                for (int index = 0; index < count; index++)
                {
                    AClass cls = classContainer[index];
                    System.Console.WriteLine("classContainer[{0}].Name="{1}"",index,cls.Name);
                }
                System.Console.WriteLine();
                for (int index = count - 1; index >= 0; index--) {
                    string name = index.ToString("D2");
                    AClass cls = classContainer[name];
                    System.Console.WriteLine("classContainer[{0}].Name="{1}"",name,cls.Name);
                }
                System.Console.ReadLine();
            }
        }
    }

    结果:
    classContainer[0].Name="00"
    classContainer[1].Name="01"
    classContainer[2].Name="02"
    classContainer[3].Name="03"
    classContainer[4].Name="04"
    classContainer[5].Name="05"
    classContainer[6].Name="06"
    classContainer[7].Name="07"
    classContainer[8].Name="08"
    classContainer[9].Name="09"

    classContainer[09].Name="09"
    classContainer[08].Name="08"
    classContainer[07].Name="07"
    classContainer[06].Name="06"
    classContainer[05].Name="05"
    classContainer[04].Name="04"
    classContainer[03].Name="03"
    classContainer[02].Name="02"
    classContainer[01].Name="01"
    classContainer[00].Name="00"

  • 相关阅读:
    MongoDB学习笔记~Mongo集群和副本集
    知方可补不足~写了一个计算数据表占用存储空间的方法
    MongoDB学习笔记~为IMongoRepository接口添加分页取集合的方法
    MongoDB学习笔记~索引提高查询效率
    MongoDB学习笔记~客户端命令行的使用
    Android动画效果translate、scale、alpha、rotate详解
    CacheHelper工具类的使用
    [置顶] vs2008 编译adb 支持4.2 android 系统(增加push 命令的进度)
    如何在cocos2d项目中enable ARC
    敏捷开发用户故事系列之十一:CSDN博客用户故事分析
  • 原文地址:https://www.cnblogs.com/gc2013/p/3865158.html
Copyright © 2020-2023  润新知