NET问答:null != variable 和 variable != null 到底有什么区别?

咨询区

  • mr_georg

在 C# 中,下面的两种写法在执行效率上是否存在差异?


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

因为最近我经常看到这种非自然的写法 null != variable,这让我感到很好奇,因为我觉得第二种写法更符合人的阅读习惯。

如果两者没有差异的话?为什么会存在这种非常规的写法?仅仅是因为个人爱好吗?

回答区

  • Jon Skeet

这是 C 语言的遗留问题,如果你的编译器档次不高或者你没有开启高级别的告警配置,那下面的代码不会出现什么任何警告信息,虽然这段代码也是正确的代码。


// Probably wrong
if (x = 5)

其实你真正想表达的意思是这样:


if (x == 5)

为了避免这种不小心造成的低级错误,所以就有了变通的写法。


if (5 == x)

回过头来说,如果在 C# 中还是这么玩的话,那就有点聪明反被聪明误了,你应该写出更可读性的代码,因为 C# 中的 if 必须是 boolean 表达式。

  • Lasse V. Karlsen

我猜这是一位 C 转过去的程序员,在 C 语言中,可以写出下面的语句。


int i = 0;
if (i = 1)
{...
}

上面这种写法的意思是:将 1 赋值给 i,然后返回变量i,又因为在 if 表达式条件中,这里的 1 会被当作 true 处理,严谨一点说:其实这是一个bug。

在 C# 中还这么写,编译器肯定放不过,所以本质上来说两者没有区别。

点评区

C 中可以这么写我不知道,但 Javascript 中经常见到,没啥好说的,学习了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分清词类

要学好英语,分清词类至关重要,每学一个词,要知道他的词类,是名词还是动词,这至关重要。每个词类都有其自己的特点,只有知道这个词,属于哪个词类,才能正确的使用它。同时还要弄清各个…

centos 6 x64 mysql_CentOS 6.x版本升级Mysql

首先确定一下自己的DNS vi /etc/resolv.conf 我一般为114.114.114.114#-----------------------------CentOS 6.x版本升级Mysql ------------------#! /bin/sh#1.关闭selinuxcp -rp /etc/selinux/config /etc/selinux/config.baksetenforce 0sed -i 7s/enforcing/disabled/…

关于Hibernate 3

Hibernate 3作了一些改进,改进了一些原来很显而易见的缺点。例如加了抽象语法树,但是在Hibernate 3.0 Beta1中,感觉还是有些不大成熟。从代码可以看出,Hibernate 3.0 Beta1的HQL AST使用了antlr,我向来不大喜欢这种使用…

程序员都想,却不敢做的事?我来!

一个 “实用” 的好命令,我不得试试?大家好,我是鱼皮。在编程届,有一个家喻户晓的实用 Linux 命令:rm -rf / 。据说,此命令一旦执行成功,就会给人带来快乐,是一个善良的好命令&#…

也来谈谈这致命的手机充电器

这两天有很多关于因使用iPhone在充电时打电话被电死的讨论,因此这里也来谈谈几点。 手机充电器的工作原理 刚好前段时间拆了两个充电器,看下里面的电路就明白了。鉴于网络上不明真相出来误导人的特别多,很多网站竟然还有文章说手机充电器里没…

每日一笑 | 一些关于学编程的领悟

全世界只有3.14 % 的人关注了数据与算法之美(图源网络,侵权删)

java基础变量_Java基础语法之变量和常量

上行没有"{"时,下行代码与上行首字母对齐标识符概述在Java中对变量、常量、函数和语句块都是有名字的,他们的名字统称为Java标识符。是为类、对象、方法、变量、接口和自定义数据类型命名的。组成标识符是由数字、字母、下划线(_)和美元符($)或…

GARFIELD@01-07-2005

completist 转载于:https://www.cnblogs.com/rexhost/archive/2005/01/07/88107.html

非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)

1、HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错…

.net core 浅克隆和深克隆/浅拷贝和深拷贝

除非语言里只有基础类型,没有引用类型,否则用任何一种编程语言克隆对象都是很棘手的事情。1、前言"老沉,什么是深克隆,什么是浅克隆?"“哈,迷茫了?这深深浅浅的体验是不是把你搞晕了&#xff1f…

中国三代核电最新进展;AI助力发现系外行星;腾讯发现特斯拉系统漏洞;论文剽窃被撤销学位;金立破产债权达173亿;这就是今日大新闻...

今天是4月3日农历二月廿八今天星期三最近上班老是有人来推销办理信用卡是谁把我缺钱花的消息透露出去了下面是今天的大新闻中国发布三代核电最新进展(环球时报)由中国核能行业协会主办的中国核能可持续发展论坛1日在京举行,多位专家现场发布了…

java对象模型是什么_蓝石榴_个人博客_JVM内存结构、Java内存模型、Java对象模型...

JVM内存结构我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在,而有些区域则依赖用户线程的…

学习kaneboy的 sps区域列表的管理入口程序

昨天,打开kaneboy提供的一个用于为sps区域中的列表提供权限管理入口的代码。发现他的程序里面的原理很简单。 在wss站点中,每个文档库、每个列表都会有权限设置,而这个权限设置界面的入口是一个链接,我们只要单击这个链接就可以进…

使用微信云托管快速部署一个.Net Core项目(一)

前几天微信将小程序开发者工具内的云托管升级为微信云托管,新增了很多诸如OpenApi、MySql数据库、流水线构建、web控制台等能力。看文档还是蛮激动的,对开发者来说确实是个好消息,因为之前的一些业务逻辑大都写在云函数或者部署在服务器里面&…

中国禁止洋垃圾后,韩国这座垃圾山已经烧了3个月,全部烧完还要5年!

全世界只有3.14 % 的人关注了数据与算法之美2017年5月,韩国洛东江畔的樱花(图片来源:东方IC)去年平昌冬奥会,由5名来自义城郡的姑娘组成的韩国冰壶队战胜各路强手,夺得亚军,这让义城郡这座风景秀…

zendframework配置篇

1. 重写配置 httpd.conf配置修改 LoadModule rewrite_module modules/mod_rewrite.so <Directory "D:\PHPProject\MVCA\public"> AllowOverride All </Directory> 2.application.config.php中添加模块&#xff0c;如 Album,紧跟Application后面

ADO.NET 2.0 中的新增 DataSet 功能

发布日期&#xff1a; 1/13/2005| 更新日期&#xff1a; 1/13/2005 Jackie Goldstein Renaissance Computer Systems 适用于&#xff1a; Microsoft ADO.NET 2.0 Visual Basic 编程语言 摘要&#xff1a;了解有关 .NET Framework DataSet 类以及与它密切相关的类中的新增 ADO…

为WPF播放GIF伤神不?

为WPF播放GIF伤神不&#xff1f;WpfAnimatedGif仓库地址&#xff1a;https://github.com/XamlAnimatedGif/WpfAnimatedGifNuget 包&#xff1a;WpfAnimatedGif[1]。今天介绍一个用于在 WPF 中显示动态 GIF 图片的库&#xff0c;可在 XAML 或代码中使用&#xff1a;WpfAnimatedG…

每日一笑 | 最真实的商业模式

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

java执行更新sql_sql server执行更新需要更多时间

我有两个表(UserTable和UserProfile)和结构&#xff1a;create table userTable(id_user int identity(1,1) primary key ,Name varchar(300) not null ,Email varchar(500) not null ,PasswordUser varchar(700) not null,userType int ,constraint usertype_fk foreign key(u…