为什么在 C# 中经常看到“null!=variable”而不是“variable!=null”?

2024-03-08

在c#中,声明条件的顺序执行速度有什么区别吗?

if (null != variable) ...
if (variable != null) ...

最近以来,我经常看到第一个,因为我已经习惯了第二个,所以它引起了我的注意。

如果没有区别,第一个的优点是什么?


这是 C 语言的保留。在 C 语言中,如果您使用了错误的编译器,或者没有将警告调得足够高,则编译时不会出现任何警告(并且确实是合法代码):

// Probably wrong
if (x = 5)

当你实际上可能的意思是

if (x == 5)

您可以通过执行以下操作在 C 中解决此问题:

if (5 == x)

这里的拼写错误将导致无效的代码。

现在,在 C# 中这一切都是废话。除非您要比较两个布尔值(这很少见,IME),否则您可以编写更可读的代码,因为“if”语句需要一个布尔表达式开头,并且“的类型”x=5" is Int32, not Boolean.

我建议,如果您在同事的代码中看到这一点,请以现代语言的方式教育他们,并建议他们将来编写更自然的形式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 C# 中经常看到“null!=variable”而不是“variable!=null”? 的相关文章

随机推荐

  • 从经典 asmx 切换到 wcf 的好处

    最近 我从使用 asmx Web 服务切换到使用 wcf 服务 转换即将完成 但我知道我需要进行大量错误检查和测试 以确保所有内容都按预期移植 我的问题是 到目前为止 我只能想到使用 wcf 的一个好处 那就是您可以获得一种简单的方法来实现
  • 使用 gae 远程时发生错误:com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException:302

    当我使用 gae 远程 api 连接到远程服务器时 发生错误 如下所示 com google appengine repackaged com google api client http HttpResponseException 302
  • 按值对字典排序

    我有一本字典 格式如下 honda 4 toyota 7 ford 3 chevy 10 我想按第二列 即值 降序对其进行排序 期望的输出 雪佛兰 10 丰田 7 本田 4 福特 3 感谢来自以下机构的卡里登 如何按值对字典进行排序 htt
  • 将 pandas 数据框中的行和上一行与数百万行进行比较的最快方法

    我正在寻找解决方案来加速我编写的函数 以循环遍历 pandas 数据帧并比较当前行和前一行之间的列值 例如 这是我的问题的简化版本 User Time Col1 newcol1 newcol2 newcol3 newcol4 0 1 6 c
  • Java图形布局算法

    在我的 Java 应用程序中 我需要某种布局算法 第一种方法如下 需要安装Graphviz包 创建点文件 从java应用程序调用graphviz并解析输出 布局 使用 graphviz 的布局显示图形 属性点 但这个解决方案需要在运行的机器
  • C#编译器验证对象时的空状态静态分析

    我在我的项目中启用了 Nullable 检查 并且在代码中的很多地方我检查输入对象及其属性 如果出现问题则抛出异常 但如果一切正常 那么我确信输入对象不为空 有没有办法告诉编译器 以某种方式使用 NotNullWhen 属性或类似的东西 我
  • 从共享组件库导出“react-router”重定向

    我正在构建一个共享 React 组件库 有一个PrivateRoute我想要包含的组件 但是 当我将组件从模块库导入另一个应用程序时 出现错误 错误 不变失败 您不应在 之外使用 The PrivateRoute组件包裹着react rou
  • Git 将“未更改”的文件添加到舞台

    对于我正在从事的项目 我想使用 git add A 将一些文件添加到舞台上 问题是 Git 认为这些文件自上次提交以来没有变化 因此它们被忽略 然而 我亲自更改了该文件 但 Git 仍然认为该文件未更改 如何 强制 将该单个文件添加到我的存
  • 使用另一个表的总和更新表中的列

    我对 SQL 比较陌生 无法解决以下问题 简而言之 我有两张桌子 我们可以调用第一个表people name Margaret Jim Lola 第二个是一个列表expenses与不同实体相关的不同类型 name type amount M
  • 插入时数据类型不匹配(代码 20)

    在我的项目中 我使用 sqlite 数据库来保存图片及其位置 我在尝试将数据插入数据库时 收到此错误 E SQLiteLog 20 statement aborts at 5 INSERT INTO PHOTO VALUES NULL da
  • 如何在emr上重启hadoop集群

    我在 Amazon Elastic MapReduce 上安装了 hadoop 每当我尝试重新启动集群时 都会收到以下错误 stop all sh no jobtracker to stop The authenticity of host
  • React-Native是单线程执行还是多线程执行?

    我想通过示例了解 React Native 是否支持单线程或多线程方法 它是单线程的 请参考此链接 我想这会消除你所有的疑虑 https react native canny io feature requests p parallel m
  • 切换 Git 分支而不检出文件

    Git 是否可以在不检查所有文件的情况下切换到另一个分支 切换分支后 我需要删除所有文件 重新生成它们 提交并切换回来 所以检查文件只是浪费时间 大约有 14 000 个文件 这是一个很长的操作 为了让一切都清楚 我需要上传所有这些文档 h
  • Azure B2C Graph API - 强制用户在下次登录时更改密码[重复]

    这个问题在这里已经有答案了 我希望使用 graph api 来强制用户在下次登录时重置他 她的密码 如果我发送用户对象 ID 以及 forceChangePasswordNextLogin true我得到了成功的回复 但是 用户的帐户实际上
  • 如何在html5中浮动部分标签

    这可能是一个非常简单的问题 因此 如何漂浮 离开 section 标签 我尝试使用float left 但不起作用或者是否可以将标签与其内容垂直对齐 这是我的尝试 html div section h1 heyo h1 a href dro
  • as3 中的阿拉伯语文本

    如何使用as3从右到左显示阿拉伯文本 这段代码可以解决这个问题 import flash text AntiAliasType import flash text TextField import flash text TextFieldA
  • 总是在 Apache 中发送内容长度?

    我正在加载一个由 PHP 动态生成的特别大的 JSON 字符串 为了向用户提供一些反馈 我想显示下载进度 我已经弄清楚了代码 它对于静态内容 例如图像 JS 文件等 工作得很好 但是 它似乎不适用于动态文件 这是有道理的 因为动态文件没有可
  • 将 C# 委托转换为 f#

    如何将委托转换为 F 代表 delegate IntPtr HookProc int code IntPtr wParam IntPtr lParam Edited 我正在做的是使用 F 中的 C 托管 API 进行低级键盘挂钩 Code
  • 为什么 Spring Rest 服务在第一次请求时速度很慢?

    所以这个问题已经被问过几次了 但似乎没有人以可以帮助我的方式回答它 我目前正在为处理产品数据的简单应用程序制作后端 它甚至没有使用 JSP 只是一个普通的 Rest 后端 使用 Spring 的 RestController 问题 是 启动
  • 为什么在 C# 中经常看到“null!=variable”而不是“variable!=null”?

    在c 中 声明条件的顺序执行速度有什么区别吗 if null variable if variable null 最近以来 我经常看到第一个 因为我已经习惯了第二个 所以它引起了我的注意 如果没有区别 第一个的优点是什么 这是 C 语言的保