zoukankan      html  css  js  c++  java
  • 26索引器--[Asp.Net]

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace demo5
    {
        public partial class suoyin : System.Web.UI.Page
        {
            //创建一个类,作为容器
            public class arr
            { 
                //申明一个字符串类型的数组
                private string[] myarr;
    
                private int szmax;
                //利用构造函数初始化数组
                public arr(int size)
                {
                    //初始化重载数组的长度
                    szmax = size;
                    //将数组大小初始化为传进来的值长度
                    myarr = new string[size];
                    for (int i = 0; i < size; i++)
                    {
                        myarr[i] = "空值";
                    }
                }
    
                //构造索引器
                public string this[int j]//j是位置参数,参数类型是数组元素的位置,整型的。
                {
                    get
                    {
                        return myarr[j];//构造属性,get,set控制元素的读写。
                    }
                    set {
                        myarr[j] = value;
                    }
                }
    
    
                public string this[string val]
                {
                    get
                    {//声明一个整型的变量,用于记录当前数组元素和传来值
                        int count = 0;
                        //循环
                        for (int i = 0; i < szmax; i++)
                        {//如果数组该项的值=传进来的值
                            if (myarr[i] == val)
                            {//count就要自增1
                                count++;
                            }
                        }
                        return count.ToString();
                    }
                    set {
    
                        for (int i = 0; i < szmax; i++)
                        {//如果数组该项的值=传进来的值
                            if (myarr[i] == val)
                            {//count就要自增1
                                myarr[i]=value;
                            }
                        }
                    }
                }
    
            
            }
    
            //索引器例题
           
            protected void Page_Load(object sender, EventArgs e)
            {
                int size = 15;
                arr WRITE = new arr(size);
                WRITE[1] = "天轰穿";
                WRITE[2] = ".NET";
                WRITE[3] = "系列教程";
    
                for (int i = 0; i < size; i++)
                {
                    Response.Write(WRITE[i]+"<br>");
    
                }
    
                Response.Write("<p>" +WRITE ["空值"]+"</p>");
                WRITE["空值"] = "抽只烟先...";
                for (int i = 0; i < size; i++)
                {
                    Response.Write(WRITE[i] + "<br>");
                }
            }
        }
    }

    结果:

    索引器定义:

      在一个类的内部,可以按照你的意愿来管理一组数据的集合。这些对象可以是类成员的有限集合,也可以是另外一个数组,或者是一些复杂的数据结构。

    特别之处:

      在不少程序语言中,通常都是使用整数作为下标来访问作为数组元素的,但C#的索引指示器不仅能够做到这一点,而且还能够更进一步。 定义索引指示器时,可以带有多个参数,每个参数的类型可以不同。添加的参数由逗号隔开,同方法中的的参数表一样。索引指示器的合法的参数类型包括:整型,枚举类型和字符串。另外,索引指示器也可以被重载。在下面清单,我们修改了前面的程序,以便用来重载索引指示器 ,从而可以接受不同类型的参数

    个人感受:

      感觉似懂非懂,囫囵吞枣吧。

  • 相关阅读:
    虚函数&纯虚函数&抽象类&虚继承
    指针的各式定义
    开源站点
    WCF、Net remoting、Web service概念及区别
    asp.net 分布式应用开发
    C++多重继承二义性解决
    ATL7窗口类详细剖析
    Code review
    GitHub 上100个最受欢迎的Java基础类库
    JAVA基本类库介绍
  • 原文地址:https://www.cnblogs.com/wangmei/p/4487247.html
Copyright © 2011-2022 走看看