我正在尝试从数组中删除一个对象,并使用相同类型的对象填充插槽,但所有属性都使用0。但是当我这样做时,当我重新计算数组值时,由于某种原因,值不会被清除。
以下是我清除对象并在其位置插入空白对象的方法。
public void clearOutBox(int arraySlot)
{
itemsInbuildArray.Remove(itemsArray[arraySlot]);
itemsInbuildArray.Insert(arraySlot, blank);
itemInBuildPictureArray[arraySlot].ImageLocation = null;
statCalculation();
}
//one of the lines from the statCalculation method.
statsHealth.Text = (Convert.ToString(itemsInbuildArray.Sum(hp => hp.Health)));
public partial class Form1 : Form
{
List<Item> itemsArray = new List<Item>();
List<PictureBox> itemInBuildPictureArray = new List<PictureBox>();
List<ToolTip> itemInBuildTooltipArray = new List<ToolTip>();
List<Item> itemsInbuildArray = new List<Item>();
Item blank = new Item(); // this is one of several objects created here
}
我使用其中的6个空白项初始化数组,并且将空白项替换为具有值的空白项没有问题,但删除它是什么导致我的问题。
请原谅我正在这样做的非常可靠的方式,我只是开始使用C#并将此项目作为学习经验。任何意见都表示赞赏!
答案 0 :(得分:1)
为什么不直接将其编入索引:
int index = 5;
array[index] = new Foobar(); // whatever your class is
这将改变数组第6个插槽中引用的内容。
我会避免使用名为“blank”的单个引用并将其放入多个数组槽中,除非您知道永远不会修改它们。如果它们是引用类型,则修改其中一个将全部修改它们。