非空值的空异常
本文关键字:异常 空值 | 更新日期: 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
实例。