这是我第一次使用元组。
public (float minX, float maxX, float minY, float maxY) BoundsTuple
{
private get => BoundsTuple;
set
{
BoundsTuple = value;
}
}
// BoundsTuple = value; causes stackoverflow error
这是我的 Unity 控制台错误:
StackOverflowException:请求的操作导致堆栈溢出。 Clump.set_BoundsTuple(System.ValueTuple`4[T1,T2,T3,T4] 值)(位于 Assets/Scripts/EverythingClouds/Clump.cs:17)
我该如何解决这个问题?
在设置元组属性时不要得到 stackoverflow
这不是关于元组的,而是关于一般属性的。
get
ter 和 set
ter 或您的财产 BoundsTuple
再次指代相同的 BoundsTuple
财产。
您要么将其转换为汽车财产
public (float minX, float maxX, float minY, float maxY) BoundsTuple { get; set; }
或者引入一个支持字段
private (float minX, float maxX, float minY, float maxY) _boundsTuple;
public (float minX, float maxX, float minY, float maxY) BoundsTuple
{
get => _boundsTuple;
set => _boundsTuple= value;
}
米兰的回答:
你正在设置你的属性的值,一个循环操作。尝试 public (float minX, float maxX, float minY, float maxY) BoundsTuple { 得到;放; } 相反。