学习C#: day 5 2023/9/8

一、运算符划分

1、按操作数划分

1)一元运算符
< 1 >数学运算符
< 2 >先赋值后运算:
        a++
        a--
< 3 >先运算后赋值:
        ++a
        --a
例如:一元运算符
            //a++和++a
            int v1 = 0;
            int v2 = 0;
            v1 = ++v2;
            //v2=v2+1; =>v2=1
            //v1=v2; =>v1=1
            Console.WriteLine("v1=" + v1);
            Console.WriteLine("v2=" + v2);

            int v3 = 0;
            int v4 = 0;
            v3 = v4 ++;
            //v3=v4; =>v3=0
            //v4=v4+1; =>v4=1
            Console.WriteLine("v3=" + v3);
            Console.WriteLine("v4=" + v4);

2)二元运算符
    赋值运算符:+-*/%

3)三元运算符
< 1 >a?b:c
        若a=true返回b
        若a=false返回c
< 2 >条件运算符(?:)根据布尔型表达式的值返回两个值中的一个。如果条件为 true,则计算第一个表达式并以它的计算结果为准;如果为 false,则计算第二个表达式并以它的计算结果为准。
例如:三元运算符
            int a3 = 10;
            int b3 = 20;
            int c3 = (a3>b3)?a3:b3;
            //第一个操作数为真,则返回第二个操作数
            //第一个操作数为假,则返回第三个操作数
            Console.WriteLine(c3);//答案:c3=20

2、按照作用划分
1) 算术运算符
2)赋值运算符
3)关系运算符:
        ==等于
        >大于
        <小于
        >=大于等于
        <=小于等于
        !=不等于
4)逻辑运算符
5)移位运算符
6)其他特殊运算符
7)自增运算符和自减运算符

二、其他特殊运算符

1、is 运算符
is 运算符用于检查变量是否为指定的类型。
        如果是,返回真
        否则,返回假。

2、as

3、typeof
typeof 运算符用于获得系统原型对象的类型,也就是 Type 对象。Type 类包含关于值类型和引用类型的信息。

typeof 运算符可以在 C#语言中各种位置使用,以找出关于引用类型和值类型的信息。

4、sizeof

5、new 运算符
 new 运算符用于创建一个新的类型实例,它有以下 3 种形式。
         对象创建表达式,用于创建一个类类型或值类型的实例。
         数组创建表达式,用于创建一个数组类型实例。
         代表创建表达式,用于创建一个新的代表类型实例。

三、运算符的优先级

1、优先级等级
    第一级:++、--(做为前缀)、()、+、-(做为单元运算符时)、!、~。
    第二级:*、/、%、+、-。
    第三级:<<、>>位移运算。
    第四级:<、>、<=、>=、==、!=。(逻辑比较)
    第五级:&、^、|、&&、||。
        与(&&):a>2&&a>5  
        或(||):A>5||A<2
        非(!):A=true;!A  
    第六级:=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=。
        例如:a*=b;
                   a=a*b;
    第七级:++、--(做为后缀)。

2、总结

括号可以重写优先级,有括号先算括号里边的

++、--作为前缀 ,优先级最高

*、/、%

+、-

=、+=、-=

++、--作为后缀 ,优先级最低

  • 表达式

变量+运算符就组成了表达式

  • 类型转换

一、隐式转换


1、隐式转换就是不需要声明就能进行的转换
2、小范围数值转换成大范围数值
例如:类型转换:隐式转换和显示转换
            float f1 = 10;
            double d1 = 200;
            d1 = f1;//隐式转换
            f1 = (float)d1;//需要显示转换
            Console.WriteLine(f1);

二、显示转换


1、显式转换也可以称为强制转换,需要在代码中明确地声明要转换的类型。
如果要在不存在隐式转换的类型之间进行转换,就需要使用显式转换
2、大范围数值转换成小范围数据,需要强制转换
例如://显示转换的例子
            double a1 = 10.0f;
            float a2 = (float)a1;
            Console.WriteLine(a2);

三、方法

1、字符串=》数字:
1)类型.Parse(需要转换的值)
例如:类型转换 类型.Parse()
            //字符串转数字
            string str = "123";
            int B = 456;
            string C = str + B;
            Console.WriteLine(C);//123456
            int D = Int32.Parse(str) + B;//479显示转换,int型
            double D1=double .Parse (str);//double型
            Console.WriteLine(D);
2)Convert.ToInt32("123");
例如:类型转换 Convert.ToInt32()
            int A1 = Convert.ToInt32("123");
            double D2 = Convert.ToDouble("123");

2、数字=》字符串:数字.ToString()
例如:类型转换 数字.ToString()
            //数字转字符串
            int aaa = 12345;
            string str3 = aaa.ToString();
            str3 = aaa + "";

四、装箱和拆箱

1、将值类型转换为引用类型的过程叫做装箱,
相反,将引用类型转换为值类型的过程叫做拆箱

例如:装箱和拆箱(白盒和黑盒)
            int a10 = 10;
            double d10 = 10.00;
            //两种类型数据运算时,结果自动转成大范围类型的数据
            //int a11 = a10 + d10;//错误
            //double a12 = a10 + d10;//对的
            //装箱
            object obj1 = a10;
            object obj2 = d10;
            //拆箱
            a10 = (int)obj1;
            d10 = (double)obj2;

2、白盒和黑盒

  • 流程控制语句

一、选择结构

1、if else语句
    1) if语句
例如:if (a > b)   //简写,只能执行一条语句;再写会报错
                Console.WriteLine("A>B;");
    2 )if else语句
例如://if else
            int a = 30;
            int b = 30;
            if(a>b)
            {
                Console.WriteLine("A>B;");
            }
            else
            {
                Console.WriteLine("A<B;");
            }
    3) if嵌套语句

2、switch case语句
    1) switch case
    2 )switch case defult
例如://switch    case  default
            int a = 10;
            switch (a)
            {
                case 0:
                    a = a + 1;
                    break;//跳出switch语句
                case 10:
                    a = a - 1;
                    break;
                case 11:
                case 12:
                case 13:
                    a = a - 12;
                    break;
                default://case语句都不成立时执行
                    a = a - 2;
                    break;
            }

二、循环结构

1、while语句

例如://while
            float a = 1;
            float sum = 1;
            while (a < 100)
            {
                sum = sum + a/(a+1);
                a++;
            }
            Console.WriteLine(sum);

          //计算1+2+3+...+100的和
            float a = 1;
            float sum = 0;
            while (a<101)
            {
                sum = sum + a;
                a++;
            }
            Console.WriteLine(sum);

2、do while语句
例如://do while
            int a = 0;
            do
            {
                Console.WriteLine(a);
            } while (a > 100);//必定执行一次

3、for 语句
例如://for
            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine(i);
            }

4、foreach语句

  • 访问修饰符

一、内容

分类
    1.public:公有的 所有的类都可以访问
    2.private:私有的 当前类内部可访问
    3.protected:受保护的 当前类以及继承他的子类可访问
    4.internal:内部的 只限于本项目内访问,其他的不能访问。
    5.protected internal:内部保护访问 只能是本项目内部或子类访问 其他类不能访问

二、使用范围

可以用在哪些地方
1)类
2)方法
3)变量

一、定义

1、类是一种数据结构,它可以封装数据成员、函数成员和其他的类
2、类是创建对象的模板。C#中所有的语句都必须位于类内
3、C#支持自定义类,使用 C#编程就是编写自己的类来描述实际需要解决的问题


二、类的定义语句


[类修饰符] class [类名] [基类或接口]
{
[类体]
}

例如://类
        class Man
        {
            public string name;
            private string age;
        }
        class Woman
        {
            //Man zhangsan=new Man();//new是实例化一个对象
            void Rand()
            {
                int a = Rand2();
                Rand3(10,20);
            }
            int Rand2()
            {
                return 10;
            }
            void Rand3(int a1,int a2)//int是限制a1,a2的参数类型
            {
                int sum = a1 + a2;
            }
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾筱黎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值