问题标签 [null-coalescing-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 奇怪的运算符优先级与 ?? (空合并运算符)
最近我遇到了一个奇怪的错误,我将一个字符串与 an 连接int?
,然后再添加另一个字符串。
我的代码基本上是这样的:
令人惊讶的是,这将在没有警告或不兼容类型错误的情况下运行和编译,如下所示:
然后这会导致意外的类型不兼容错误:
就像这个更简单的例子一样:
有人可以向我解释这是如何工作的吗?
c# - C# ??空合并运算符问题
我已将类人属性生日定义为可为空的日期时间?,那么为什么 null 合并运算符不能在以下示例中工作?
我得到的编译器错误是“运算符'??' 不能应用于“System.DateTime?”类型的操作数?和'System.DBNull'”
以下也有编译错误:
我按照 Refactor 的建议向 (object) 添加了一个强制转换,它编译了,但没有正常工作,并且在这两种情况下,值都作为 null 存储在 sqlserver db 中。
有人可以解释这里发生了什么吗?
我需要使用以下笨拙的代码:
c# - 有没有更优雅的方法来添加可为空的整数?
我需要添加许多可为 null 的 int 类型的变量。我使用空合并运算符将其降低为每行一个变量,但我觉得有一种更简洁的方法可以做到这一点,例如,我不能以某种方式将这些语句链接在一起,我之前在其他代码。
c# - 在 foreach 语句中使用空值合并
试图弄清楚如何让 null 合并运算符在 foreach 循环中工作。
我正在检查字符串以什么结尾,并在此基础上将其路由到某个方法。基本上我想说的是......
在尝试执行此操作时,您当然会得到“运算符 ?? 不能用于 bool 类型和字符串类型”。我知道还有其他方法可以做到这一点,只是想看看如何通过空合并来完成。
有一个美好的周末。
@Richard Ev:哦,当然。Switch,if else等。只是好奇如何处理
@Jon Skeet:读了你的评论后,我觉得这很糟糕!我基本上对两个文件扩展名感兴趣。例如,如果文件以“abc”结尾,则发送到方法 1,如果文件以“xyz”结尾,则发送到方法 2。但是如果文件以“hij”的扩展名结尾怎么办......繁荣,你完毕。
感谢 Brian 和 GenericTypeTea 的周到输入
我很满足称它为关闭。
c# - C# 中的合并运算符?
我想我记得在 C# 中看到过类似于?: 三元运算符的东西,它只有两个部分,如果它不为 null 则返回变量值,如果是则返回默认值。像这样的东西:
基本上相当于这个:
这样的事情是否存在或者我只是想象在某个地方看到这个?
c# - 如果空合并操作中的所有参数都为空,结果是什么?
当这段代码完成时,结果是myObject
什么?
c# - 有没有更简洁的方法来设置这个匿名类属性?
我正在返回一个匿名类:
问题是地址可以为空,这意味着如果它为空,它会爆炸成一百万个。
我能想到的最优雅的解决方案是这个......
有更好的方法吗?,我不喜欢失去使用空合并运算符然后不得不检查是否为空的能力。
c# - Ruby 相当于 C# 的 ?? 操作员
c# - 空合并运算符是否匹配空字符串?
我有一个非常简单的 C# 问题:以下语句在处理空字符串时不相等吗?
或者
我认为:因为string.Empty!=null
,当我真正想要的是第二个时,合并运算符可能会将第一个语句的结果设置为空值。由于字符串在某种程度上是特殊的(== 和!= 被重载以进行值比较),我只是想请 C# 专家确认。
谢谢你。