我目前正在学习有关属性的信息,但遇到了一些问题。当我在get
方法中返回属性时,收到递归错误。
这是因为每当我返回属性时,它都会激活get方法,该方法将返回属性,从而激活get方法,等等?
这是我的代码:
using UnityEngine;
struct Enemy
{
public int Bonus;
private int gold;
public int Gold
{
get
{
return Gold + Bonus;
}
set
{
gold = value;
}
}
}
答案 0 :(得分:5)
原因-
您正在自己的getter中使用Gold
属性本身,该属性一次又一次地递归调用其getter。
解决方案-
改为使用变量-
public int Gold
{
get
{
return gold + Bonus;
}
set
{
gold = value;
}
}
答案 1 :(得分:3)
因为您不停地打电话给Gold
public int Gold // here
{
get
{
return Gold + Bonus; // here
即
Give me Gold
Gold + Bonus
oh give me Gold
Gold + Bonus
ect ect
在可以添加奖金之前,它会再次调用金币
这很明显,让您找出解决方法