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#的索引指示器不仅能够做到这一点,而且还能够更进一步。 定义索引指示器时,可以带有多个参数,每个参数的类型可以不同。添加的参数由逗号隔开,同方法中的的参数表一样。索引指示器的合法的参数类型包括:整型,枚举类型和字符串。另外,索引指示器也可以被重载。在下面清单,我们修改了前面的程序,以便用来重载索引指示器 ,从而可以接受不同类型的参数
个人感受:
感觉似懂非懂,囫囵吞枣吧。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。