在我的模型中,我使用以下属性
public string LastName
{
get => LastName;
set
{
value = value.TrimAndReduce();
}
}
我得到这个错误
System.StackOverflowException:引发了“ System.StackOverflowException类型的异常”
错误来自代码的get
部分
答案 0 :(得分:4)
您没有用于存储该属性的实际变量的字段,并且通过访问LastName
来称呼自己,因此也称为StackOverflowException
。解决方案是引入一个字段并使用该属性访问它。像这样:
private string _lastName;
public string LastName
{
get => _lastName;
set
{
_lastName= value.TrimAndReduce();
}
}
答案 1 :(得分:1)
所需的样式如下:
private string lastname; // backing field
public string LastName
{
get => lastName;
set
{
lastname = value.TrimAndReduce();
}
}
答案 2 :(得分:1)
设置LastName属性时,您不会调用存储实际变量,而是会调用字段_LastName
并使用它们。
解决方案:
public int _LastName;
public int LastName
{
get
{
get => _LastName;
}
set
{
_LastName= value.TrimAndReduce();
}
}