Maui中DisplayPromptAsync点击Cancel触发空引用异常求助
解决MAUI中DisplayPromptAsync点击Cancel触发空引用异常的问题
问题根源在于:当用户点击Cancel按钮时,DisplayPromptAsync会返回null,此时直接调用ResultName.ToString()就会触发NullReferenceException。要实现点击Cancel仅关闭弹窗、不做任何更改的预期效果,只需在处理返回值前增加空值判断即可。
修复后的代码如下:
private async void NameClicked(object sender, EventArgs e) { var ResultName = await DisplayPromptAsync("Insira seu Nome", "Favor inserir seu Nome","Ok", "Cancel"); // 仅当返回值不为null时(即点击Ok按钮),执行后续操作 if (ResultName != null) { LabelName.Text = ResultName; await DisplayAlert("Nome Alterado","Seu Nome Foi alterado com Sucesso","OK"); } // 点击Cancel时返回null,直接跳过后续逻辑,仅关闭弹窗 }
补充说明:
ResultName本身就是字符串类型,无需额外调用ToString(),直接赋值给LabelName.Text即可,这也能避免不必要的方法调用。- 空值判断会过滤掉点击Cancel的场景,完全符合你“仅关闭弹窗且不做任何更改”的需求。
内容的提问来源于stack exchange,提问作者D3atHpR
相关产品推荐
相关产品推荐

