盖伊,我想做一些像动态数组这样的事情,但我不想使用List。
ccf(airquality$Wind,airquality$Temp)
为什么创建新实例不起作用?
答案 0 :(得分:0)
首先,为什么你不想使用List并不是很清楚。
虽然根据你的代码,我假设你真正想要的是你想要从硬编码的字符串数组(纹理名称)创建一个纹理数组。
但在我向您展示另一种方式之前,让我解释为什么spriteHouses
仍为空。
当您将spritHouses
参数传递给LoadTextures
方法时,您实际所做的是传递“值”的副本(即null)方法。这意味着texture
变量在方法开始时将为null,但之后您将为其分配新值new Texture2D[names.Count()];
。
此时texture
变量具有您想要的结果,但是当该方法返回时,该数组的本地副本将被丢弃,spriteHouses
仍然为空。这有意义吗?
无论如何,简单的解决方法是返回新数组,而不是将其作为参数传递。
public Texture2D[] spritHouses;
protected override void LoadContent()
{
spritHouses = LoadTextures(@"Sprits/Guns/", "Big", "Medium", "Small");
}
public Texture2D[] LoadTextures(string trace, params string[] names)
{
var textures = new Texture2D[names.Count()];
for (int i = 0; i <= names.Count()-1; i++)
textures[i] = Content.Load<Texture2D>(trace + names[i]);
return textures;
}