[C#]有趣实用的C#运算符, 三元运算符,Null合并运算符...

[C#]有趣实用的C#运算符, 三元运算符,Null合并运算符...

lenmei233
昨天发布

在C#的世界中,有许多实用的运算符,作为高级的编程语言,自然不会让编程复杂,所以C#内置多种实用运算符帮助编写程序;

算数运算符

运算符 描述 示范
+ 加法,用于数值相加,也可用于字符串拼接 string str = "Hello" + " World"; int a = 1+2
- 减法,与+相反 int b = 5 - 3;
* 乘法 int c = 2 * 3;
/ 除法,整数相除结果为整数,浮点数相除结果为浮点数 int d = 6 / 2; double e = 5.0 / 2.0;
% 取模(求余数) int f = 7 % 3;
++ 自增运算符,分为前置和后置,前置先自增再使用,后置先使用再自增 int g = 1; int h = ++g; int i = g++;
-- 自减运算符,分为前置和后置,前置先自减再使用,后置先使用再自减 int j = 5; int k = --j; int l = j--;

以上是简单的常用的算数运算符

逻辑运算符

下表列举了 C# 中支持的逻辑运算符:(假设变量 A 的布尔值是 true,变量 B 的布尔值是 false)

运算符 描述 示例
&& 逻辑与运算符,如果两个操作数都为真,则结果为真 (A && B) 为假
|| 逻辑或运算符,如果两个操作数中有任意一个为真,则结果为真 (A || B) 为真
! 逻辑非运算符,用来对操作数的逻辑状态取反,如果结果为真,那么取反后则为假 !(A && B) 为真
using System;

namespace blog.lenmei233.top
{
    class Demo
    {
        static void Main(string[] args)
        {
            bool a = true;
            bool b = false;
          
            if (a && b){
                Console.WriteLine("(a && b) 条件为真");
            }else{
                Console.WriteLine("(a && b) 条件为假");
            }
            if (a || b){
                Console.WriteLine("(a || b) 条件为真");
            }else{
                Console.WriteLine("(a || b) 条件为假");
            }
            if (!(a && b)){
                Console.WriteLine("!(a && b) 条件为真");
            }else{
                Console.WriteLine("!(a && b) 条件为假");
            }
            Console.ReadLine();
        }
    }
}

这些逻辑运算符是处理一些逻辑时不可缺少的,如果上面的内容你理解了却不知道什么时候用可以联想一下登录系统

using System;

namespace blog.lenmei233.top
{
    class Demo
    {
        static void Main(string[] args)
        {
            string username = "blog.lenmei233.top";  //这里是用户输入的用户名
            string password = "i like this blog";  //这里是用户输入的密码
            if (username=="blog.lenmei233.top" && password=="i like this blog"){ //判断username和密码是否等于正确的
                Console.WriteLine("验证成功!尊敬的lenmei233's blog 用户");//QwQ,看我的小博客的都是我的贵人
            }else{
                Console.WriteLine("验证失败!你居然还不去看lenmei233's blog");
            }
        }
    }
}

以上程序在输入用户名密码正确的情况下将输出验证成功!尊敬的lenmei233's blog 用户

接下来就是我们的其它运算符了,它们在一些条件判断环境中能节省大量时间和提高效率

其它运算符

1.三元运算符

这段代码使用了 C# 中的三元运算符(也叫条件运算符)来根据条件判断并赋值。

string result = math >=90 && english >=90 ? "优秀":"不优秀";
  • 变量声明:string result 声明了一个名为 result 的字符串类型变量,这个变量用于存储最终的判断结果。
  • 条件判断:math >= 90 && english >= 90 是一个布尔表达式。这里的 mathenglish 应该是之前已经定义好的数值类型变量,分别代表在 math 科目和 english 科目中的成绩。&& 是逻辑与运算符(上面有提到),意味着只有当 math 大于等于 90english 也大于等于 90 时,整个布尔表达式的结果才为 true,否则为 false
  • 三元运算符:? : 是三元运算符,它的语法格式为 条件表达式 ? 表达式1 : 表达式2。如果条件表达式的结果为 true,则返回表达式 1 的值;如果条件表达式的结果为 false,则返回表达式 2 的值。在这段代码里,如果 math >= 90 && english >= 90trueresult 就会被赋值为 "优秀";反之,result 会被赋值为 "不优秀"。

使用自然语言可以说成是当math(数学)成绩大于或等于90分 并且(&&) 英语成绩 大于或等于90分 二个条件同时完成时 如果这个判断这个条件是为成立(True)则使用 “优秀”,反之使用 False代表的“不优秀” 这里的选择的字符串使用 ? 代表开始 , "字符串1":"字符串2" 其中字符串1是True返回的结果, 字符串2是False返回的结果

什么你问我这样方便在哪里,Code告诉你答案,一句string result = math>=90 && english >=90 ? "优秀":"不优秀"; //其中math ,english需要自己先定义
可以等效于一下代码:

using System;

namespace blog.lenmei233.top
{
    class Demo
    {
        static void Main(string[] args)
        {
            int english = 99;
            int math = 100;
            Demo test = new Demo();
            string result=test.Test(math,english);
            Console.WriteLine(result);
            
        }
        public string Test(int math , int english)
        {
            if (math >=90 && english >=90){
                return "优秀";
            }else{
                return "不优秀";
            }
        }
    }
}

这么一看是不是觉得三元运算符效率高多了,简洁多了,明了多了

2.Null合并运算符(??)

在 C# 中 Null 合并运算符用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为 null,那么运算符将返回左操作数,否则返回右操作数。例如表达式
a??b中,如果 a 不为空,那么表达式的值则为 a,反之则为 b。
需要注意的是,Null 合并运算符左右两边操作数的类型必须相同,或者右操作数的类型可以隐式的转换为左操作数的类型,否则将编译错误。

using System;

namespace lenmei233.top
{
    class Demo
    {
        static void Main(string[] args){
            int? num1 = null;
            int? num2 = 123;
            int num3;
        
            num3 = num1 ?? 321;
            Console.WriteLine("num3 = {0}", num3);

            num3 = num2 ?? 321;
            Console.WriteLine("num3 = {0}", num3);
            Console.ReadLine();
        }
    }
}
因为其中num1是可空整数型可以被赋值为null 并且赋值为了null
然后又定义了可空整数型num2=123
最后定义一个整数型num3
使用Null合并运算符,将num1 (左运算符) 和 321 (右运算符)  进行了对比,根据合并运算符概念可以得出因为num1=null所以返回右运算符内容,反之返回左运算符
所以num3=321
反之返回左运算符:
    num3=num2 ?? 321;
    num3=123 也就是num2

此文章内容不是全部的运算符后续可能推出part2 (QWQ)

The End: 记住我: Https://blog.lenmei233.top 可以的话可以添加到书签常来看看吗~

© 版权声明
THE END
喜欢就支持一下吧
点赞 1 分享 赞赏
评论 共1条
取消
  1. 头像
    lenmei233 作者
    Windows 10 · Google Chrome

    画图

    回复
易航博客
SSL