我有一行代码用于从此项中提取图像数据,但代码会跳过imageItem = null。可能的原因是什么?
foreach (Layer layer in level.Layers)
{
foreach (Item item in layer.Items)
{
ImageItem imageItem = item as ImageItem;
if (imageItem != null)
{
Texture2D texture = imageItem.Texture;
imageItemList[iImageItemNum].itemTextureDataList[0] =
new Color[imageItem.Texture.Width * imageItem.Texture.Height];
imageItem
.Texture
.GetData(imageItemList[iImageItemNum]
.itemTextureDataList[0]);
iImageItemNum++;
}
}
}
答案 0 :(得分:2)
as
运算符就像一个强制转换操作。但是,如果无法进行转换,则返回null而不是引发异常
因此,如果item
中的当前layer.Items
不是ImageItem
,则会在此行中为null
分配imageItem
ImageItem imageItem = item as ImageItem;