「基础」C#中的索引器

来源:互联网 发布:c语言且或非符号 编辑:程序博客网 时间:2024/05/01 15:02
public partial class ISAM : 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] 
= "null";//将数组元素全部赋值为字符"null";
            }

        }

        
//下面我们来构造索引器。
        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
++;
                    }

                }

                
return count.ToString();
            }

            
set {
                
for (int i = 0; i < _szMax; i++ )
                
{
                    
if(_myArr[i] == val)
                    
{
                        _myArr[i] 
= value;
                    }

                }

            }

        }


    }

    
protected void Page_Load(object sender, EventArgs e)
    
{
        
int size = 15;
        Arr temp 
= new Arr(size);
        temp[
1= "雨伞";
        temp[
4= ".Net2.0";
        temp[
5= "入门讲解";
        
//for (int i = 0; i < size; i++ )
        
//{
        
//    Response.Write(temp[i]+"<br/>");
        
//}
        
//Response.Write("<hr/>");
        
//Response.Write("<p>"+temp["null"]+"</p>");//这里可以计算出值为"null"的个数。

        
//下面怎么好像不行?
        temp["null"= "喝点可乐先";//把所有为 "null" 值的全部改成 "喝点可乐先"

        
for (int i = 0; i < size; i++)
        
{
        
//    if (temp[i] == "null")
        
//    {
        
//        temp[i] = "喝点可乐先";
        
//    }
        
//    else
        
//    {
        
//        temp[i] = "<font color='red'>" + temp[i] + "</font>";
        
//    }
            Response.Write(temp[i] + "<br/>");
        }

    }

}