问题标签 [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.

0 投票
6 回答
11624 浏览

c# - 将 c# Null-Coalescing 运算符与 int 一起使用

我正在尝试在 int 上使用 null 合并运算符。当我在字符串上使用它时它可以工作

当我尝试在这样的 int 上使用它时

我收到此错误消息

操作员 '??' 不能应用于“int”和“int”类型的操作数

我发现这篇博客文章使用了http://davidhayden.com/blog/dave/archive/2006/07/05/NullCoalescingOperator.aspx和 int 数据类型。谁能告诉我做错了什么?

0 投票
4 回答
40706 浏览

vb.net - VB.NET 空合并运算符?

可能的重复: VB.NET 中的
Coalesce 运算符和条件运算符
是否有 C# 的 VB.NET 等效项?操作员?

是否有等效于 C# 空合并运算符的内置 VB.NET?

0 投票
6 回答
15800 浏览

php - PHP 中 C# 的空值合并运算符 (??)

PHP中是否有类似于??C#的三元运算符之类的?

??在 C# 中干净且更短,但在 PHP 中您必须执行以下操作:

0 投票
3 回答
2707 浏览

c# - 写空合并的反面最简洁的方法是什么

可能重复:
空合并运算符是否存在“相反”?(……任何语言?)

这里有没有更简洁的方式来写第三行?

我知道空合并运算符,但我正在寻找的行为与此相反:

0 投票
4 回答
2671 浏览

c# - 有什么理由不使用空合并运算符进行延迟初始化?

问候我今天做了一些懒惰的初始化代码,并想为什么不使用 null-coalescing 运算符来执行此操作,它更短,但后来我想这样做是否有任何开销或额外成本。

下面是简化的示例代码,显示了用于延迟初始化的更常见的形式,然后是使用空合并运算符的形式。它们具有完全相同的结果,并且看起来相同。我的第一个想法是,在创建对象之后,现在使用??. 这是否不是问题,编译器/JIT 会以某种方式对其进行优化,是否有更邪恶的事情发生,您永远不应该使用 进行延迟初始化??,或者它是完全安全的,并且不会产生任何不好的 mojo。

0 投票
4 回答
1663 浏览

c# - 空数组和 IEnumerable

上一个问题讨论了 IEnumerable 以及使用空集合而不是空值集合的约定。这是一个很好的做法,因为它消除了许多容易出错的空检查。

但答案并没有完全解决其中一种情况。很多时候我不得不处理空值,特别是当数组从外部方法返回时。一个例子:

我写了一个帮助方法,它确实在一定程度上提高了可读性。

导致:

我不介意这一点,但我正在寻找更好的想法。好像我正在添加一些应该已经存在的东西。

0 投票
2 回答
887 浏览

javascript - Javascript null 合并帮助,如何合并阈值?a = b || c 但如果 b > d,选择 c

我想为javascript中的变量赋值

有没有一种简单的方法可以做到这一点?

感谢您提供任何提示或建议。只是想尽可能干净地写这个。

0 投票
1 回答
493 浏览

c# - 将空合并运算符与比较一起使用

给定方法:

是否可以重写 if 语句以使其使用空合并运算符?

0 投票
2 回答
1542 浏览

c# - 右侧的三元/空合并运算符和赋值表达式?

在 C# 中尝试使用三元和 null 合并运算符时,我发现可以在表达式的右侧使用赋值,例如,这是一个有效的 C# 代码:

奇怪的是,不仅表达式右侧的赋值被评估为它自己的右侧(意味着这里的第三行被评估为12而不是类似的东西b = 12 => void),而且这个赋值也有效地工作,所以在一个语句中分配两个变量。还可以使用此赋值右侧的任何可计算表达式以及任何可用变量。

这种行为在我看来很奇怪。if (a = 2) 我记得在 C++ 中使用而不是比较时遇到了麻烦if (a == 2) ,它总是被评估为true,这是从 Basic/Haskell 切换到 C++ 后的常见错误。

它是记录在案的功能吗?它有什么名字吗?

0 投票
2 回答
8845 浏览

c# - 如何让 Null Coalesce 运算符在 ASP.NET MVC Razor 中工作?

我有以下内容,但它失败了NullReferenceException

OneMonth定义为

并且在失败时它的值为空。

我认为 Null Coalesce 运算符会测试它是否为 null,如果是,则将值返回到运算符的右侧?

我需要改变什么才能使这项工作?