我正在努力处理一张空支票,有人能帮我找出哪里出了问题吗?

当有意传入空值时,我想要处理它,并希望x是空字符串.如果它不是Null,我希望它是值集.

var x = string.IsNullOrEmpty(ViewModel.OccupationRefer.ToString()) ? string.Empty : ViewModel.OccupationRefer.ToString();

以上代码将空参数传递到了ViewModel.OccuationRefer中,引发了一个空异常.

推荐答案

var x = ViewModel?.OccupationRefer?.ToString() ?? "";

这使用了空条件(?.)和空合并(??)操作,因此如果ViewModelViewModel.OccupationRefernull,或者如果ToString()返回null:则得到""

Csharp相关问答推荐

System.Data.SQLite:判断SQLite数据库是否为空(任何表中至少有一行)

无法使用ternal- .net修复可空警告

将修剪声明放入LINQ中

Blazor:类型或命名空间名称Components在命名空间中不存在''

有没有一种方法可以防止在编译时在MicrosoftC或非单线程上下文中调用方法?

如何在NServicebus中配置学习传输的文件夹(NService bus 8)

安装附加的. exe与Visual Studio

如何在没有额外副本的情况下将存储在IntPtr下的原始图像数据写入WinUI3中的Image控件?

如何在Parall.ForEachAsync中使用CancerationTokenSource

如何在C#中从正则表达式中匹配一些数字但排除一些常量(也是数字)

从ASP.NET Core中的枚举字段填充 Select 选项时,将默认的第一个选项添加为 Select 元素

在.NET MAUI.NET 8中如何防止按钮点击时出现灰色反馈

关于扩展文件类C#的矛盾

在使用UserManager时,如何包含与其他实体的关系?

如何在发布NuGet包之前设置命名空间?

是否可以在Entity Framework Core中使用只读 struct 作为拥有实体?

如何使用EPPlus C#在单个单元格中可视化显示多行文字

如何更改Datagridview行标题

如何在C#中反序列化Java持续时间?

将两个JSON文件与覆盖值的主文件合并