具有两个类的文件中的StackOverFlowException

use*_*639 1 c#

以下代码生成StackOverFlowException.问题是为什么?它看起来合法......

using System;

namespace learning
{

    public class TestClass
    {
        private String name;

        public String Name
        {
            get => Name;
            set => name = value;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            TestClass e = new TestClass();
            Console.WriteLine(e.Name);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试删除名称空间学习{...},但它没有改变任何东西.

Kev*_*sse 5

您的物业正在返回:

public String Name
{
    get => Name;
    set => name = value;
}
Run Code Online (Sandbox Code Playgroud)

相反,它应该返回字段name(区分大小写):

public String Name
{
    get => name;
    set => name = value;
}
Run Code Online (Sandbox Code Playgroud)