【发布时间】:2018-10-03 02:45:20
【问题描述】:
Class MyClass
{
public int[] MyArray
{
get {return MyArray;}
set
{
if (value == null) { MyArray = new int[2] { 0, 0 }; return;}
else { MyArray = value; return;}
}
}
public MyClass()
{
this.MyArray = new int[2] { 0, 0 };
}
}
在我的课堂上,我有一个int[],我需要在set 中处理value 的操作,除非我尝试创建MyClass 的新实例时出现堆栈溢出。
当我在构造函数和set 上放置断点时,它会在构造函数中显示myArray = new int[2] {0, 0}; 调用set 方法,一旦set 到达myArray = value 行,它就会再次调用set 方法。这会循环一段时间,然后抛出堆栈溢出异常。我尝试在分配后立即输入return;,但没有达到返回值。
对数组使用 set 方法的任何启示都会很棒。
【问题讨论】: