null异常,非null值

时间:2013-02-28 04:10:42

标签: c# windows-store-apps

所以我在这里有这个方法:

    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是Dictionary。

2 个答案:

答案 0 :(得分:1)

LoadPic功能更改为返回Task

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

答案 1 :(得分:0)

您的方法GrabPixelData明确返回Task<PixelData&gt;实例而非PixelData。  所以是的,你的猜测是正确的,它正在返回一个Task实例。