我正在用Xamarin Forms编写条码扫描器应用程序,我正在使用ZXing库来处理条形码扫描和解析。以下代码可以正常工作,在扫描代码时显示警报:
OnScanResult += (result) => {
IsScanning = false;
var parsedResult = ResultParser.parseResult(result);
Device.BeginInvokeOnMainThread(() => {
Navigation.PopAsync();
DisplayAlert("Barcode Info", parsedResult.DisplayResult, "OK");
});
但是,我想对此方法使用ExpandedProductParsed结果类型并收集productID字段,所以我尝试了这个:
OnScanResult += (result) => {
IsScanning = false;
var productResult = ResultParser.parseResult(result) as ExpandedProductParsedResult;
Device.BeginInvokeOnMainThread(() => {
Navigation.PopAsync();
DisplayAlert("Barcode Info", productResult.ProductID, "OK");
});
};
由于某种原因,此解析不起作用,最终会抛出空引用异常。为什么第一个实例有效而不是第二个?