using System;
using System.Collections.Generic;
using System.Text;namespace hgoApp
{
    public class Racer
    {
        private string _Name;
        public string Name
        {
            get { return Name; }
        }
        private string _Car;
        public string Car
        {
            get { return Car; }
        }
        public Racer(string Name, string Car)
        {
            this._Name = Name;
            this._Car = Car;
        }
        public override string ToString()
        {
            return string.Format("{0}开的车是名车{1}", _Name, _Car);
        }
        //public override string ToString()
        //{
        //    return _Name + "," + _Car;
        //}
    }
    class Test
    {
        static void Main()
        {
            List<Racer> MyRacer = new List<Racer>();
            MyRacer.Add(new Racer("aa", "宝马"));
            MyRacer.Add(new Racer("bb", "奔驰"));
            MyRacer.Add(new Racer("cc", "保时捷"));
            MyRacer.Add(new Racer("dd", "宝马"));
            foreach (Racer R in MyRacer)
            {
                Console.WriteLine(R);
            }
            FindCar MyCar = new FindCar("宝马");
            foreach (Racer R in MyRacer.FindAll(new Predicate<Racer>(MyCar.DriveCar)))
            {
                Console.WriteLine(R);
            }
            
        }
    }    public class FindCar
    {
        private string car;
        public FindCar(string car)
        {
            this.car = car;
        }
        public bool DriveCar(Racer R)
        {
            return R.Car == car;
        }
    }
}
上面程序出现StackOverLowException错误
怎么解决

解决方案 »

  1.   

    public List<T> System.Collections.Generic.List<T>.FindAll(Predicate<T> match);这是定义。你给出的是合格的 match 吗?
      

  2.   

    clR在线程耗尽所有的堆栈空间时,抛出此异常。
    属性自己调用自己会或有死循环
      

  3.   

    这个是我的match
     public bool DriveCar(Racer R)
            {
                return R.Car == car;
            }
      

  4.   

    List:public List<T> FindAll(Predicate<T> match);
    public class FindCountry
    {
        public FindCountry(string country)
        {
           this.country = country;
        }
    private string country;
    public bool FindCountryPredicate(Racer r)
    {
           if(r == 0) throw new ArgumentNullException("r");
           return r.Country == country;
    }
    }int index3 = racers. FindIndex(delegate(Racer r)
    {
     return r.Country == "";
    }
      

  5.   

    if(r == 0) throw new ArgumentNullException("r"); 
    这里的r==0有问题
      

  6.   

    if(r ==null) throw new ArgumentNullException("r"); 
      

  7.   

    大哥粗心害死猫啊
     public string Car
            {
                get { return Car; }
            }
            public string Name
            {
                get { return Name; }
            }
    这两个递推啦,少了个 “_”
    应该是
            public string Name
            {
                get { return _Name; }
            }
       public string Car
            {
                get { return _Car; }
            }