为什么此代码会引发StackOverFlow异常



我学习了C#中的getter和setter,并发现了这段代码。我理解这里的c上下文有什么问题。它没有编译时错误,但引发运行时异常。有人能解释一下调用堆栈溢出的原因吗?

using System;
class Program
{
static void Main(string[] args)
{
Test test = new Test();
Console.WriteLine(test.Company);
}
}
class Test
{
public string Company
{
get
{
return Company;
}
set
{
Company = value;
}
}
}

这是因为您在getter中调用了属性。你可以做两件事:给你的类添加一个字段/成员:

class Test
{
private string company;   
public string Company
{
get
{
return company;
}
set
{
company = value;
}
}
}

或者将其更改为

public string Company{get; set;}

最新更新