问题标签 [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 投票
2 回答
670 浏览

mysql - 这个简单的 COALESCE 选择查询有什么问题?(mysql)

我有这个查询:

当没有发生连接并且结果为 NULL 时,我希望查询用“NONE”来合并 null 结果,但是我仍然得到 NULL。我将如何使它返回“NONE”而不是 NULL?

我忽略了解释一个重要的点: usaf并且wbanINa 的变量stored procedure。这是我的最终(工作)版本。谢谢罗兰多

0 投票
1 回答
1008 浏览

c# - 如何使用 CodeDOM 表示空合并运算符?

假设,我有以下简化类型:

如何使用 CodeDOM 表示空合并运算符以生成 C# 代码,这可能吗?现在我正在使用以下解决方法:

等于model.Result.Value,但不等于model.Result ?? 0M

更好的解决方法

CodeExpression等于model.Result.GetValueOrDefault(0M)适用于可空值类型

0 投票
2 回答
20785 浏览

c# - C# 反射按名称获取字段或属性

有没有办法为函数提供名称,然后返回具有该名称的给定对象上的字段或属性的值?我尝试使用 null-coalesce 运算符来解决它,但显然它不喜欢不同的类型(这对我来说也有点奇怪,因为 null 是 null)。我可以将它分成 if nulls,但必须有更好的方法来做到这一点。这是我的函数,带有Comparison对象的两行无法编译,但我会将它们留在那里以显示我正在尝试做的事情。

我听说过可以使用动态 LINQ 的东西,但是为了学习,我按照自己的方式做。

0 投票
3 回答
159 浏览

c# - 如何优化这些空值检查操作?

我有一个 SQL Reader 对象,我对其进行迭代,而且通常情况下,你永远不知道你会得到什么。读者返回的任何值都需要转换为双精度值,但如果它返回 null,我需要用默认值优雅地处理它,在这种情况下为零。我开始使用与此类似的代码...

...这似乎可以解决问题,但我并不满意。我认为设计 C# 的神秘团队会为此配备一个运算符,你知道吗,. 所以,然后我最终得到了一个稍微不同的实现......

我无法告诉您上面的两个示例是否等效,因为像所有新手一样,我采用了我认为可以解决问题并将其用于重要事情的代码——部分笑话。我所知道的是,我还没有让任何一种实现在访问数据库并获得空结果时抛出异常,这让我相信两者都能按我的预期工作,但我宁愿确定。

所以,关于我的问题。有人可以解释一下我在使用这两种方法时可能遇到的潜在功能差异吗?如果可能,有人可以提供/解释第二个示例的更好实现吗?我发现 null-coalesce 运算符非常性感,但我真的不知道我是否以最好的方式实现它。谢谢。

0 投票
2 回答
77 浏览

function - 为什么数学函数中的空合并运算符(??)在没有括号的情况下会有所不同?

您好,我对 C# 中的这个数学函数有疑问,我想知道为什么会这样。这两行给出不同的结果,为什么?

返回 -> -839.9944

返回 -> 50.99966

函数的唯一区别是第二个函数的括号:(container.promotion_rate ?? 0)

0 投票
3 回答
19391 浏览

python - 如何在 SQLAlchemy 中实现空合并运算符?

或者我如何让这件事发挥作用?

我有一个区间对象:

还有一个任务:

当然,添加所有典型的设置代码。

现在当我尝试做session.query(Task).filter(Task.hours_spent > 3).all()

NotImplementedError: <built-in function getitem>sum(i.hours_spent...线上得到。

所以我正在查看文档的这一部分,并推测可能有某种方法可以让我写出我想要的东西。这部分看起来也可能有用,我会在这里等待答案的同时查看它;)

0 投票
4 回答
203 浏览

c# - 的用法??运算符(空合并运算符)

我用 ??运算符在我的代码中非常重要。但是今天我刚刚遇到一个问题。

这是我用于的代码??操作员

但在某些地方,我也看到了这段代码。

这些代码之间的真正区别是什么。在一个中,我正在分配 _names = new List(),而在另一个中,我只是在做 new List()。

0 投票
3 回答
26507 浏览

c# - 向 Sql Server 发送空参数

我有一个SqlCommand用于更新数据库表的对象,但它不能正确解释我的空值。

这是SQL:

我已经尝试过像这样可以为空的空合并参数,但我没有任何成功。除非另有说明,否则所有参数都是字符串:

我得到一个这样的例外:

我还尝试在将每个参数添加到 SqlCommand 对象后循环遍历每个参数以设置 DbNull.Value 如果参数值为 null,如下所示:

但是,这种方法会导致异常:

将 null 参数传递给 a 的最佳做法是SqlCommand什么?如果它们为空,我不想简单地传递默认值,因为数据库模式允许空值。

0 投票
2 回答
2083 浏览

c# - 为什么空合并运算符 (??) 在这种情况下不起作用?

当我运行此代码时,我得到了一个意外NullReferenceException,省略了fileSystemHelper参数(因此将其默认为 null):

当我在调试器中单步执行代码时,在我跨过第一行(使用??运算符)之后fileSystem,仍然有 null 值,如此屏幕截图所示(跨过下一行 throws NullReferenceException): 什么时候null不为null?

这不是我所期望的!我期望 null 合并运算符发现参数为 null 并创建一个new FileSystemHelper(). 我已经盯着这段代码很久了,看不出它有什么问题。

ReSharper 指出该字段仅用于这一种方法,因此可能会转换为局部变量……所以我尝试了一下,你猜怎么着?有效。所以,我有我的解决方案,但我无法终生明白为什么上面的代码不起作用。我觉得我正在学习一些关于 C# 的有趣的东西,或者我做了一些非常愚蠢的事情。谁能看到这里发生了什么?

0 投票
1 回答
315 浏览

c# - 访问器方法中的空合并运算符

我在stackoverflow中环顾四周,是否将空合并运算符放在访问器方法中是否会对性能产生影响。

前:

后:

我什至不确定语法是否正确,但是当我调试时,私有对象已设置。

在有人问这样做有什么意义之前,我们在内部争论是为了可读性而编写(第一个对我来说看起来更具可读性),还是为了性能而编写。

不知道编译器会不会优化??总比手动空检查好。微优化不好,但我只是好奇