首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

这个属性如何一直执行

2012-01-14 
这个属性怎么一直执行?C# codeusing Systemusing System.Collections.Genericusing System.Linqusing S

这个属性怎么一直执行?

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MyArrayList{    class SArrayList    {        private string[] str;        public SArrayList()        {            str = null;        }        public SArrayList this[int index]        {            get   // [color=#FF0000][u][b]这个地方在输出的时候一直不停运行,怎么回事[/b][/u][/color]            {                return this[index];            }            set            {                this[index] = (SArrayList)value;            }        }        public int Length        {            get            {                if (str == null)                    return 0;                else                    return str.Length;            }        }        public void Add(string s)        {                            string[] temp = new string[Length + 1];                for (int i = 0; i < Length; ++i)                    temp[i] = str[i];                temp[Length] = s;                str = temp;                   }        public int Find(string s)        {            if (Length == 0)            {                Console.Write("数组是空的!");                return -1;            }            for (int i = 0; i < Length; ++i)                if (str[i] == s)                    return i;            return -1;        }        public void Remove(string s)        {            if (Find(s) == -1)                return;            int index = Find(s);            string[] temp = new string[Length - 1];            for (int i = 0; i < Length; i++)            {                if (i == index)                    continue;                else if (i > index)                    temp[i - 1] = str[i];                else                    temp[i] = str[i];                            }            str = temp;        }        public void Clear()        {            for (int i = 0; i < Length; ++i)                Remove(str[i]);        }    }}测试代码:namespace MyArrayList{    class Program    {        static void Main(string[] args)        {                       SArrayList sal = new SArrayList();            for (int i = 0; i < 5; ++i)            {                sal.Add(i.ToString());                           }            for (int i = 0; i < 5; ++i)                Console.Write(sal[i]+"\t");        }    }}


[解决办法]
调用自身了。
[解决办法]
循环调用
[解决办法]
我靠....

堆栈移出, 死循环了


public SArrayList this[int index]
{
get // [b]这个地方在输出的时候一直不停运行,怎么回事[/b]
{
return this[index];
}
set
{
this[index] = (SArrayList)value;
}
}

[解决办法]
索引器的问题,应该是:
 public string this[int index]
{
get // [b]这个地方在输出的时候一直不停运行,怎么回事[/b]
{
return str[index];
}
set
{
str[index] = value;
}
}

热点排行