gpt4 book ai didi

c# - 我的嵌套类中属性 C# 的设置函数出现 StackOverflowException 错误

转载 作者:行者123 更新时间:2023-11-30 13:12:32 25 4
gpt4 key购买 nike

public class Class1
{
public Class1()
{
prop = new Class2();
}
public Class2 prop { get; set; }

public class Class2
{
public Class2()
{
this.prop2 = "nikola";
}

public string prop2 { get { return prop2; } set { prop2 = EditString(value); } }

public string EditString(string str)
{
str += " plavsic";
return str;
}
}
}

这是我遇到问题的代码。当我尝试初始化 Class1 类型的对象时,它会抛出 StackOverflowException 错误。我做错了什么?

最佳答案

您的属性正在自行设置。

属性 setter 中的prop2 = ...行调用属性 setter ,属性 setter 再次调用自身,再次调用自身,再次调用自身,再次调用自身,再次调用自身再次调用自己,再次调用自己,再次调用自己,再次调用自己,再次调用自己,再次调用自己,再次调用自己,再次调用自己,再次调用自己,再次调用自己, 再次调用自己,再次调用自己,再次调用自己,再次调用自己 ...

getter 做同样的事情,只是你从不调用它。

您需要为要获取和设置的属性创建一个支持字段。

例如:

private string prop2; //Create a backing field
public string Prop2 {
get { return prop2; }
set { prop2 = EditString(value); }
}

关于c# - 我的嵌套类中属性 C# 的设置函数出现 StackOverflowException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com