属性和索引器

属性

索引器

1.允许调用方法,如果它们是公共数据成员 

允许调用对象上的方法,如果对象是个数组 

2.可以通过简单的名称进行访问 

通过索引器进行访问

3.可以为静态成员或实例成员

必须为实例成员

4.属性的get访问器没有参数

索引器的get访问器具有与索引器相同的形参表

5.属性的set访问器包含隐式value参数

除了value参数外,索引器的set访问器具有与索引器相同的形参表
 1 using  System;
 2 using  System.Data;
 3 using  System.Configuration;
 4 using  System.Collections;
 5 using  System.Web;
 6 using  System.Web.Security;
 7 using  System.Web.UI;
 8 using  System.Web.UI.WebControls;
 9 using  System.Web.UI.WebControls.WebParts;
10 using  System.Web.UI.HtmlControls;
11
12 public  partial  class  索引器 : System.Web.UI.Page
13 {
14    public class arr
15    {
16        private string[] myarr;  //声明一个字符串类型的数组
17        private int szmax;
18        public arr(int size)   //利用构造函数初始化数组
19        {
20            szmax = size;
21            myarr = new string[size];
22            for (int i = 0; i < size; i++)
23            {
24                myarr[i] = "空值";   //给数组元素全部赋值为“空值”
25            }

26        }

27        public string this[int j]   //j是位置参数,参数类型是数组元素的位置,整型的  
28        {
29            get
30            {
31                return myarr[j];
32            }

33            set
34            {
35                myarr[j] = value;
36            }

37        }

38        public string this[string val]
39        {
40            get
41            {
42                int count = 0;
43                for (int i = 1; i < szmax; i++)
44                {
45                    if (myarr[i] == val)
46                    {
47                        count++;
48                    }

49                }

50                return count.ToString();
51            }

52            set
53            {
54                for (int i = 0; i < szmax; i++)
55                {
56                    if (myarr[i] == val)
57                    {
58                        myarr[i] = value;
59                    }

60                }

61            }

62        }

63    }

64
65    protected void Page_Load(object sender, EventArgs e)
66    {
67        int size = 15;
68        arr write = new arr(size);
69        write[1= "111111";
70        write[3= "22222";
71        for (int i = 0; i < size; i++)
72        {
73            Response.Write(write[i] + "<br>");
74        }

75        Response.Write("<br>空值有:" + write["空值"+ "<br>");
76        write["空值"= "抽烟";
77        write[6= "122333";
78        for (int i = 0; i < size; i++)
79        {
80            Response.Write(write[i] + "<br>");
81        }

82    }

83}

84
85

你可能感兴趣的:(索引)