c#&是什么意思?

看过一些文章,关于这个的简单而容易被忽略的语法,说的总有点瑕疵。

贴代码15秒之内应该能知道c#中一个&和两个&&的区别,开始计数了........

5秒看代码:

namespace Test927Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("***********c#一个&符号的作用是***********");
            Console.WriteLine("输入这个两个方法的结果是:{0}",oneMethod()&twoMethod());

            Console.WriteLine("***********c#一个&符号的作用是***********");
            Console.WriteLine("输入这个两个方法的结果是:{0}", oneMethod() && twoMethod());
        }
        static bool oneMethod()
        {
            Console.WriteLine("这是第一个方法");
            return false;
        }
        static bool twoMethod()
        {
            Console.WriteLine("这是第二个方法");
            return false;
        }
    }
}

5秒看结果:

理解一下两者的区别:

  • 相同点:,中文名称逻辑 “与”,计算的结果都是一样的
  • 不同点:$位运算 符(非bool的情况下才是位运算符,一般也可以叫逻辑与),$$逻辑运算符. 两个$符号,在计算oneMethod 为false时 ,不需要计算twoMethod,称之为”短路”运算,一个$是每一个bool值都需要去判断

关于他们的应用场景:

也许你总会碰到,也学你可能永远也用不到,但是你应该知道这个简单而又容易被忽略的问题.

留下一些思考:

  • c#中|和||的区别又是什么呢?
  • 能&&的地方一定能用&吗?能用&的地方一定能用$$吗?

C#中&与&&的区别的更多相关文章

  1. MyBatis Mapper.xml文件中 $和#的区别

    MyBatis Mapper.xml文件中 $和#的区别   网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramN ...

  2. (实用篇)PHP中unset,array_splice删除数组中元素的区别

    php中删除数组元素是非常的简单的,但有时删除数组需要对索引进行一些排序要求我们会使用到相关的函数,这里我们来介绍使用unset,array_splice删除数组中的元素区别吧 如果要在某个数组中删除 ...

  3. javascript中&&和||的区别

    javascript中&&和||的区别 &&和||操作符两边不是布尔类型时,系统会转换成布尔类型值再计算(空字符串.null.0都会被转成false),结果本身不变. ...

  4. mybatis 中#{}与${}的区别 (面试题)

    MyBatis/Ibatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号. 如:order by #user_id#,如果传入的值是111,那么解析成sql时的 ...

  5. OC类方法和实例方法中的self区别

    OC类方法和实例方法中的self Objective-C里面既有实例方法也类方法.类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenien ...

  6. Activity中与ListActivity中使用listview区别

    Activity中与ListActivity中使用listview区别 一.Activity中与ListActivity中使用listview区别(本身没多大区别,只是ListActivity在lis ...

  7. C字符串和C++中string的区别 &&&&C++中int型与string型互相转换

    在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:   C字符串 string对象(C++) 所需的头文件名称 ...

  8. javascript中=、==、===区别详解

    javascript中=.==.===区别详解今天在项目开发过中发现在一个小问题.在判断n==""结果当n=0时 n==""结果也返回了true.虽然是个小问题 ...

  9. C字符串和C++中string的区别 &&&&C++中int型与string型互相转换

    在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:   C字符串 string对象(C++) 所需的头文件名称 ...

  10. [zz] makefile中=和:=的区别

    转载自:http://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html 在Makefile中我们经常看到 = := ?= +=这几个赋 ...

随机推荐

  1. Nosql简介 Redis,Memchche,MongoDb的区别

    本篇文章主要介绍Nosql的一些东西,以及Nosql中比较火的三个数据库Redis.Memchache.MongoDb和他们之间的区别.以下是本文章的阅读目录 一.Nosql介绍 1.Nosql简介 ...

  2. JAVA基础5——与String相关的系列(2)

    差异点比较 String使用+直接拼接 这种情况需要分两种情况来讨论: 1. 都是确定的字符串常量之间进行的+号拼接的时候,由于在编译器就可以确定其具体值了,所以编译器在编译期的时候就会把这些常量拼接 ...

  3. easyUI整合富文本编辑器KindEditor详细教程(附源码)

    原因 在今年4月份的时候写过一篇关于easyui整合UEditor的文章Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合,从那 ...

  4. redis配置文件之复制

    主从复制使用slaveof将Redis实例作为另一个Redis服务器的副本. 1) Redis复制是异步的,master可以配置成如果它连接的slave没有达到给定的数量,就停止接受写入.2) 如果断 ...

  5. 从Proxy.newInstance出发

    写在前面 本篇博客是基于对动态代理,java的重写,多态特性了解的基础上对于源码的阅读,先提出几个问题 1.从静态代理变成动态代理需要解决两个问题,如何动态实现被代理类的接口并摘取接口中的方法,如果动 ...

  6. 学习使用azure CLI创建linux环境

    学习使用azure CLI创建linux环境 选用了容器的方法来登录 docker run -it microsoft/azure-cli 进入交互界面后登录到我的订阅 azure login -e ...

  7. Android 异步消息处理机制终结篇 :深入理解 Looper、Handler、Message、MessageQueue四者关系

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.概述 我们知道更新UI操作我们需要在UI线程中操作,如果在子线程中更新UI会发生异常可能导致崩溃,但是在UI线程中进行耗时操作又会导致ANR,这 ...

  8. HDU2546--饭卡(01背包)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  9. Linux下OpenSSL的安装全过程(CentOS6.3 x86 + Openssl 1.1.0e)

    写在前面:安装前先查看下老的openssl版本 (使用  openssl version -a  命令查看来版本),和服务器操作系统版本(uname   -a),升级的原因是,老版的openssl已经 ...

  10. Centos下抓包

    刚才遇到一个问题,微信配置时token总是失败. 于是抓一下服务器的包.看看是否是数据传输出了问题. 先安装工具 [Shell] 纯文本查看 复制代码 ? 1 yum install -y wires ...