C# 为什么在c中使用委托会产生stackoverflowexception
当我遇到代表时,我写了这个非常简单的程序只是为了练习。当我运行它时,有一个stackoverflowexception。所以,如果有人能告诉我这段代码有什么问题,请告诉我,因为我已经浪费了很多时间试图让它工作,但不能。 代码如下:C# 为什么在c中使用委托会产生stackoverflowexception,c#,delegates,C#,Delegates,当我遇到代表时,我写了这个非常简单的程序只是为了练习。当我运行它时,有一个stackoverflowexception。所以,如果有人能告诉我这段代码有什么问题,请告诉我,因为我已经浪费了很多时间试图让它工作,但不能。 代码如下: using System; public delegate void click(); class test { public click flare; public double length; public double Length
using System;
public delegate void click();
class test
{
public click flare;
public double length;
public double Length
{
get
{
return Length;
}
set
{
Length = value;
flare();
}
}
}
class glance
{
public glance(ref test a)
{
a.flare = blank;
}
public void blank()
{
Console.WriteLine("this is blank");
}
}
class Program
{enter code here
static void Main(String[] args)
{
test know = new test();
glance x = new glance(ref know);
know.Length = 10;
}
}
这与代表无关。您正在长度属性中的setter内部调用setter方法,这会导致异常。请使用为属性创建的支持字段:
public double Length
{
get
{
return length;
}
set
{
length = value;
flare();
}
}