C#运算符的简单使用测试

在代码中看到的代码中|=,有点不太理解故重新学习了下位运算符。

位运算符在 c# 中的测试用例

[TestMethod]
public void TestMethod1()
{
    var a = false;
    a |= true;
    Assert.IsTrue(a);

    var b = true;
    b |= false;
    Assert.IsTrue(b);

    var c = false;
    var c2 = false;
    c = c || c2 == false;
    //等于下面
    c2 |= c;
    Assert.IsTrue(c);
    Assert.IsTrue(c2);
    // & 使用测试
    var ab = a &= b;
    Assert.IsTrue(ab);
    var abc = ab &= !c;
    Assert.IsFalse(abc);
}

|||的区别

表达式A(true) | 表达式B :表达式都会执行(| ----- 位运算符) 表达式A(true) || 表达式B :表达式B不会执行(||--短路运算符)

下面为测试通过的单元测试

var testStr = "";
Func<string, bool> funcTest = (str) =>
    {
        testStr = str;
        return false;
    };
//会执行 funcTest
var test = true | funcTest("test1");
//不会会执行 funcTest
test = true || funcTest("test2");
Assert.AreEqual(testStr, "test1");

变量A (位运算符=) 变量B

+=,-+,|=,&=, 将计算A和B的运算结果赋值给变量A

使用场景

在一些复制的判断中可以简化判断语句 如果要将bool值比较之后赋值的时候能够用到

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏nummy

querystring模块详解

parse方法还有三个可选参数,分别是分隔符(默认为&),赋值符(默认为=),以及配置对象,配置对象又有两个可选参数,分别是````maxKeys(最多能解析多...

903
来自专栏数据结构与算法

1230 元素查找

1230 元素查找 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 给出...

1973
来自专栏恰同学骚年

剑指Offer面试题:30.第一个只出现一次的字符

  最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字...

752
来自专栏java一日一条

Java 动态代理深入解析

要想了解Java动态代理,首先要了解什么叫做代理,熟悉设计模式的朋友一定知道在Gof总结的23种设计模式中,有一种叫做代理(Proxy)的对象结构型模式,动态代...

955
来自专栏IT笔记

Integer == 和equals -128--127的比较问题

先看一段代码: public static void main(String[] args) { Integer a = new Intege...

3827
来自专栏专注 Java 基础分享

基本数据类型及其包装类(一)

我们都说,Java 是一门面向对象型程序设计语言,但是它设计出来的「基本数据类型」仿佛又打破了这一点,所以,只能说 Java 是非 100% 纯度的面向对象程序...

3795
来自专栏Jerry的SAP技术分享

深入理解Java的整型类型:如何实现2+2=5?

可能有的朋友对于doSomethingMagic里面的代码有点摸不着头脑,让我们先查看上图第17行 2 + 2反编译出来的代码:

1211
来自专栏专注 Java 基础分享

基本数据类型及其包装类(二)

上篇文章我们简单介绍了包装的相关基本概念,并简单分析了 Integer 类中的几个核心的方法源码,但是有关自动拆装箱的概念限于篇幅并没能完成介绍,本篇还将分析几...

3256
来自专栏ShaoYL

iOS:swift :可选类型

3037
来自专栏Python

while补充,字符串和数字的内置方法

一、while循环的补充 while True: name=input('please input your name: ') password...

2557

扫码关注云+社区