您怎么看?= C#中的运算符?
你认为C#会支持像?? = operator这样的东西吗?
而不是这个:
if (list == null)
list = new List<int>();
有可能写:
list ??= new List<int>();
现在,我可以使用(但在我看来,它不太可读):
list = list ?? new List<int>();
没有找到相关结果
已邀请:
5 个回复
哩翔购
更频繁地使用它。 但是,我真正想要的是一种运算符形式,它允许您仅在非空时才取消引用该对象。要替换这个:
用这样的东西:
这对我来说特别有用,有很长的参考链(设计不好,我知道),但是例如
目前无法实现这一点,因为你只能说“分配给foo,或者替换为null”但不是“分配给foo的属性,或者替换为null”。
埃输林桨铃
相同的方式而言):
但说实话,我发现它有点不必要。人们通常“得到”
,但往往会出现零合并问题(
)。添加一个null-coalescing-assignment操作符......好吧,我没有看到它结束得很好。 我个人赞成原始代码:
另外 - 考虑:在所有其他
,
等中 - 总是评估右侧。在这种情况下,它不会(在某些情况下)。这增加了更多的混乱。我的意思是:
坛沤疲撑拆
...你可以在你的代码中使用类似的懒惰eval。
席陋临拈
邦绊门蔽惩