新阁上位机开发——一道简单的面试题

新阁上位机开发——一道简单的面试题

编码文章call10242025-02-05 18:09:4912A+A-

-Begin-

前言

前几天,有个学员去面试上位机软件工程师的岗位,跟我说了一道面试题,很简单,但是可能也会有一些人不知道,所以跟大家分析一下。

或运算中,| 和 || 有什么区别?

分析

我们都知道,在C#中,|和||这两个运算符都可以用来表示或运算,那么他们之间有什么区别呢?

首先,C#中对于值类型来说,我们只能用|来进行位运算,但是对于布尔类型来说,|和||都可以,所以这是他们的区别之一,|既能用于值类型,也可以用于布尔类型,但是||只能用于布尔类型。

其次,既然|和||都可以用于布尔类型,那么两者有没有什么区别呢?

写了一段简单的C#代码,如下图所示:

如果我们使用||,运行时会发现,Get1方法里的断点可能正常进入,而Get2方法里的断点不会进去,因为对于或运算,当检测到Get1返回值为True之后,不管后续的结果是True还是False,结果均为True,所以就不会进入Get2方法内部了。

如果将Get1的返回值改成False,那么还是会进入Get2方法的。

同样的代码,如果将 || 改成 | ,我们会发现,无论Get1返回True或False,两个方法里的断点,都会进入。

所以,总结就是||会根据前面的执行结果动态执行后面的代码,而|不管前面的执行结果如何,都会执行后面的代码。

同理,对于&和&&也是同样的区别。

大家都记住了吗。

我是新阁上位机开发的付老师,用我的专业,成就你的梦想。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4