gpt4 book ai didi

c# - 设置变量时堆栈溢出

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

我正在编写一个使用 MEF 框架创建插件的程序。尝试在其中一个插件中设置变量时,出现堆栈溢出异常。

插件中的变量定义为public string bnick {get {return bnick;} set {bnick = value;}}

主程序中的调用代码:

 public void SetUpPlugins()
{
foreach (Plugin p in plugins)
{
p.bnick = nick;
p.HostProgram = this;
}
}

使用调试器,我确定 p.bnick = nick 行只被调用一次。而且它永远不会到达下一行。

为什么这会填满堆栈?我该如何解决?

最佳答案

public string bnick {get {return bnick;} set {bnick = value;}} 

在这里,您再次在 setter 的主体中分配 bnick,造成堆栈溢出。您是否打算改为创建实例变量,例如

private string bnick = "";
public string Bnick
{
get
{
return bnick;
}
set
{
bnick = value;
}
}

注意:在 C# 中,约定是以 PascalCase 编写属性。

关于c# - 设置变量时堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17384530/

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