美文网首页
真会 C# 吗 04

真会 C# 吗 04

作者: JeetChan | 来源:发表于2019-05-19 00:06 被阅读0次

    声明

    本文内容来自微软 MVP solenovex 的视频教程——真会C#吗?-- C#全面教程,大致和第 7 课—— 基础 - bool(入门) 对应。

    本文主要包括以下内容:

    1. bool 和操作符

    bool 和操作符

    bool 关键字是 System.Boolean 的别名。 它用于声明变量来存储布尔值:true 和 false。

    bool 特点

    • System.Boolean 的别名。

    • Literal:true,false。

    • 只需要 1byte 内存(运行时和处理器可以高效操作的最小的块)。

    • 针对数组,Framework 提供了 BitArray 类(System.Collections),在这里每个 bool 值只占用 1bit 内存。

    转换

    bool 类型无法和数值类型进行相互转换。

    相等和比较操作符

    • == 和 != 操作符在用来比较相等性的时候,通常都会返回 bool 类型。

    • 对于值类型(原始类型)来说,== 和 != 就是比较它们的值。

    • 对于引用类型,默认情况下,是比较它们的引用。

    • 数值类型都可以使用这些操作符:==,!=,<,>,<=,>=。实数比较需要注意精确度问题。

    • 枚举类型(enum)也可以使用这些操作符,就是比较它们底层对应的整型数值。

    // Value types
    
    int x = 1;
    int y = 2;
    int z = 1;
    Console.WriteLine (x == y); // False
    Console.WriteLine (x == z); // True
    
    // reference types
    
    public class Dude
    {
        public string Name;
        public Dude (string n) { Name = n; }
    }
    
    Dude d1 = new Dude ("John");
    Dude d2 = new Dude ("John");
    Console.WriteLine (d1 == d2); // False
    Dude d3 = d1;
    Console.WriteLine (d1 == d3); // True
    

    && 和 || 条件操作符

    • && 和 || 可以用来判断“与”和“或”的条件。

    • && 和 || 有短路机制。

    • && 和 || 可避免 NullReferenceException。

    static bool UseUmbrella (bool rainy, bool sunny, bool windy)
    {
        return !windy && (rainy || sunny);
    }
    
    // without throwing a NullReferenceException
    if (sb != null && sb.Length > 0)
        DoSomething();
    

    & 和 | 条件操作符

    • & 和 | 也可以用来判断“与”和“或”的条件。

    • & 和 | 没有短路机制。

    • & 和 | 很少用来条件判断上。

    • 当使用于数值的时候,& 和 | 执行的是按位操作。

    return !windy & (rainy | sunny);
    

    条件操作符(三元操作符)

    • q ? a : b。
    • 有三个操作数。
    • 如果 q 为 true,那么就计算 a,否则计算 b。
    static int Max (int a, int b)
    {
        return (a > b) ? a : b;
    }
    
    The truth tables.jpg

    参考

    bool (C# Reference)

    Boolean logical operators (C# Reference)

    相关文章

      网友评论

          本文标题:真会 C# 吗 04

          本文链接:https://www.haomeiwen.com/subject/uxatzqtx.html