获取任意对象列表并初始化所有对象
本文关键字:对象 初始化 列表 任意 获取 | 更新日期: 2023-09-27 17:56:59
bgList.Add(bg1);
bgList.Add(bg2);
bgList.Add(bg3);
bgList.Add(bg4);
bgList.Add(bg5);
//Initialize all background objects
for (int i = 0; i < bgList.Count; i++)
{
bgList[i] = new Sprite();
bgList[i].Scale = 2.0f;
}
这是这样做的合法方法吗?基本上,问题归结为"我可以使用 for 循环初始化对象列表吗?
我在 bg1、bg2、bg3、bg4 和 bg5 对象上收到"此对象永远不会不为空"警告,这让我想知道是否不允许使用这种技术。
这些语句不等效:
bg1 = new Sprite();
和
bgList.Add(bg1);
bgList[0] = new Sprite();
后者不会将对新实例的引用分配给bg1
。它只是将新实例存储在第 0 个位置。
因此,使用集合和循环来实例化许多变量并不是一个可行的捷径。您必须显式实例化每个变量,或者从一开始就使用数组或集合。
foreach 肯定会更容易,y 你应该能够做到,但 imo 你也可以在循环中添加类似的东西。
for (int i = 0; i < bgList.Count; i++)
{
var bglistitem = new Sprite()
bhlistitem.Scale = 2.0f;
bgList.Add(bglistitem);
}