日期:2014-05-18  浏览次数:21044 次

各位大哥帮我看看怎么就堆栈溢出了呢?? 顺便讲讲C#中属性的get,set是怎么走的..
C# code

 class Program
    {
        static void Main(string[] args)
        {
            MyClass m = new MyClass(null);
            Console.WriteLine(m.Name);
            Console.ReadKey();
        }        
    }
    class MyClass 
    {
        public MyClass(string name)
        {
            this.Name = name;
        }
        public string Name 
        {
            get 
            {
                return this.Name; 
            }
            private set 
            {
               this.Name = value;
            }
        }        




当嵌套的方法调用过多而导致执行堆栈溢出时,将引发 StackOverflowException 异常。
相关提示
--------------------------------------------
确保您没有无限循环或无限递归。
过多的方法调用通常意味着存在非常深的递归或无限递归。 


------解决方案--------------------
代码有问题,得这么写:

class MyClass 
{
public MyClass(string name)
{
this.Name = name;
}
private string _name = "";
public string Name 
{
get 
{
return _name; 
}
private set 
{
_name = value;
}

}
------解决方案--------------------
探讨
C# code

class Program
{
static void Main(string[] args)
{
MyClass m = new MyClass(null);
Console.WriteLine(m.Name);
Console.ReadKey();
……

------解决方案--------------------


看到的 第三个 问这种问题的

楼上都正解,你自己调用自己