龙空技术网

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

新阁常老师上位机 459

前言:

现时大家对“上位机开发是什么专业”大概比较关心,看官们都需要了解一些“上位机开发是什么专业”的相关文章。那么小编在网上网罗了一些有关“上位机开发是什么专业””的相关资讯,希望你们能喜欢,看官们一起来学习一下吧!

-Begin-

前言

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

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

分析

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

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

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

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

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

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

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

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

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

大家都记住了吗。

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

标签: #上位机开发是什么专业