为什么这段代码会抛出 StackOverFlow 异常?
Why does this code throw StackOverFlow Exception?
我在学习 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 中调用了 属性。
你可以做两件事:给你加一个field/member class:
class Test
{
private string company;
public string Company
{
get
{
return company;
}
set
{
company = value;
}
}
}
或改为
public string Company{get; set;}
我在学习 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 中调用了 属性。 你可以做两件事:给你加一个field/member class:
class Test
{
private string company;
public string Company
{
get
{
return company;
}
set
{
company = value;
}
}
}
或改为
public string Company{get; set;}