进程因溢出而终止
本文关键字:终止 溢出 进程 | 更新日期: 2023-09-27 18:07:07
由于stackoverflow导致进程终止。
如果我使用c#访问器获取打印机名称,它将导致stackoverflow。
Receipt.cs
public String printer_name
{
set { this.printer_name = value; }
get { return this.printer_name; }
}
Program.cs
receipt.amount = 101;
receipt.drawnBy = "haha";
receipt.printer_name = @"RP80 Printer";
如果我直接分配打印机名称,就不会出现这个问题。
请帮
您的printer_name
属性正在引起无限递归。使用auto属性代替:
public String printer_name { get; set; }
这是因为在你的属性printer_name
setter中,你调用了this.printer_name = value;
,它再次调用了相同的属性setter,并且它持续了很多次。
为了解决这个问题,你需要引入一个具有不同名称的变量,例如:
private string _printerName;
public String printer_name
{
set { this._printerName = value; }
get { return this._printerName; }
}
很可能你正在使用。net 2.0或更高版本,在这种情况下,上面的代码可以简化为一行:
public String printer_name { get; set; }