非空值的空异常

本文关键字:异常 空值 | 更新日期: 2023-09-27 18:01:25

这里有一个方法:

    public async Task<PixelData> GrabPixelData(string imageFileName)
    {
        if (!ImageDictionary.ContainsKey(imageFileName))
        {
            // doesn't exist yet, so load it
            PixelData pd = await LoadPic(imageFileName);
            ImageDictionary.Add(imageFileName, pd);
        }
        var test = ImageDictionary[imageFileName];
        return ImageDictionary[imageFileName];
    }

调试器说"test"包含一个PixelData类型的对象(具有真实的,非静态的值)。

但是,当它返回到调用方法时,它说该行上有一个空引用异常:

    private async void LoadPic()
    {
        myObject.pixelData = await rootPage.GrabPixelData("obj1.png");
    }

MyObject也不是空的(根据调试器)…

是一个任务得到返回吗?

编辑:

ImageDictionary is Dictionary

非空值的空异常

LoadPic函数更改为返回Task:

private async Task LoadPic()
{
    myObject.pixelData = await rootPage.GrabPixelData("obj1.png");
}

您的方法GrabPixelData显然返回Task<PixelData>实例而不是PixelData。所以,是的,你的猜测是正确的,它正在返回一个Task实例。