0

我有一行代码用于从该项目中提取图像数据,但由于 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++;
        }
    }
}
4

1 回答 1

2

as运算符就像一个强制转换操作。但是,如果无法进行转换,则 as 返回 null 而不是引发异常

所以如果当前item输入layer.Items不是ImageItem你被null分配到imageItem这一行

ImageItem imageItem = item as ImageItem;
于 2013-08-28T13:55:08.863 回答