imageItem在c#中返回null

时间:2013-08-28 13:31:07

标签: c# xna

我有一行代码用于从此项中提取图像数据,但代码会跳过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++;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

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

因此,如果item中的当前layer.Items不是ImageItem,则会在此行中为null分配imageItem

ImageItem imageItem = item as ImageItem;