c# - 怎么了??运算符这样使用 :

标签 c# coalesce

所以不用写了:

if (obj.Collection == null)
    obj.Collection = new Collection();
obj.Collection.Add(something);

我想到写:

obj.Collection = obj.Collection ?? new Collection;
obj.Collection.Add(something);

感觉有点不对,尤其是“obj.Collection = obj.Collection...”这部分

大家怎么看?

问候,

最佳答案

如果必须在这两个代码块之间做出选择,我会使用前者。它更具可读性,并且是一种常见的模式。 ?? 在需要默认值的情况下很有用(例如,DateTime date = nullableDateTimeInstance ?? defaultDate;)。

但坦率地说,我会尽量避免出现我想添加到集合中但集合可能为空的情况。相反,我会确保在构造函数中或任何情况下初始化集合。

关于c# - 怎么了??运算符这样使用 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4775872/

相关文章:

c# - 用于 ASP.Net 应用程序的简单 Javascript 图像编辑器

c# - 当我尝试执行此操作时出现模板错误?

c# - 如何检查类属性是否包含某些内容?

c# - AutoMapper 如何在获取抛出异常的属性时忽略异常?

mysql - 有没有办法查询 mysql 中可能不存在的列?

sql-server - 连接表内部查询中的逗号分隔字符串 (SQL Server)

mysql - 在 node.js 上使用 coalesce 和 sequelize

c# - .NET DLL 中的 System.DllNotFoundException

mysql - 为什么 MySQL 8 IF 和 IFNULL 在测试值为 NULL 的变量时返回 BLOB 结果?

mysql - 对同一个表中的子/父进行排序