c#基础2

 一.变量

            //1.含义:用来存储特定类型的数据格式, 变量的命名 要遵守标识符规则
            //2变量的使用方式:定义变量和使用变量(赋值)
            //定义变量格式:  数据类型 变量的名字;
            int intNumber;
            //使用变量格式    变量名 = 数据内容'
            intNumber = 1;
            //3.变量只能保存最新的数据内容
            intNumber = 2;
            //4.不允许在相同作用域出现相同名字变量的定义
            // int intNumber;
            //5.简写
            int intNumber1 = 3;
            long longNumber, longNumber2, longNumber3;
            float floatNumber = 1.1f, floatNumber1 = 1.2f;
            //6.局部变量 需要赋值之后才能使用
            // int intNumber2;
            // Console.WriteLine(intNumber2);
            Console.WriteLine(intNumber);


二.常量


            //1.用来存储特定类型的数据格式
            //2.存储不变的数据  
            //3.常量的分类:值类型常量 和字符串类型常量  和const 和 readOnly


            //值类型常量
            int intNumber10 = 10; //十进制
            intNumber10 = 10;
            int intNumber2 = 0X20;  //十六进制
            int intNumber3 = 012; //八进制
            float floatNumber10 = 10.1f;
            long longNumber1 = 100L;
            uint uintNumber1 = 100u;
            char charNumber11 = 'a';//英文
            char charNumber21 = '中'; //中文
            char charNumber31 = '\n'; //转义字符
            char charNumber41 = '\u058F'; //Unicode编码
            string stringNumber11 = "abc"; //字符串常量

            //const 常量  
            //1.const表示的常量 必须在定义时赋值
            //const int constIntNumber;
            //2.const表示的常量  名字要用大写
            const int CONST_INT_NUMBER = 30;
            //3.const常量使用场景 比如特殊的数字 特殊的符号
            const double PI = 3.1415926;
            //已知圆的半径为10 求圆的面积
            Console.WriteLine(PI*10*10);
            const string PE = "中国人";
            Console.WriteLine(PE+"热爱和平");

三.输出和输入

         

         //1.控制台输出内容
            //2.内容换行
            Console.WriteLine(10);
            //1.控制台输出内容
            //2.内容不换行
            //3.没有无参方法
            Console.Write(20);
            Console.Write(30);
            Console.WriteLine(40);
            //1.只有换行功能
            Console.Write('\n');
            Console.WriteLine();
            //1.从屏幕读取一串字符,并返回该字符串
            //2.暂停当前程序,按回车键继续执行程序
            string strNumber =  Console.ReadLine();
            Console.WriteLine(strNumber);
            //1.从屏幕读取一串字符的首个字符并返回该字符对应的编码
            //2.暂停当前程序,按回车键继续执行程序
            int readIntNumber =    Console.Read();
            Console.WriteLine(readIntNumber);

            //1.暂停当前程序, 按任意按键继续执行程序
            Console.ReadKey();

四.数据类型转换

///隐式类型转换(两种类型兼容,小转大)   适用于值类型之间转换

           //隐式类型转换
            int number = 10;
            double dNumber = number;//自动类型转换 隐式类型转换
            Console.WriteLine(dNumber);


///显示类型转换(两种类型兼容,大转小):   

  //显示式类型转换
            double d1 = 303.6;
            int n = (int)d1;


///八   Parse()   适用于 string转换成值类型

         string strNumber = "123";
            int intNumber4= int.Parse(strNumber);
            Console.WriteLine(intNumber4);
            long longNumber4 =long.Parse(strNumber);
            Console.WriteLine(longNumber4);
            byte byteNumber  =byte.Parse(strNumber);
            Console.WriteLine(byteNumber);
            uint uintNumber =uint.Parse(strNumber);
            Console.WriteLine(uintNumber);
            float floatNumber4  = float.Parse(strNumber);
            Console.WriteLine(floatNumber4);
            // 注意bool类型转换
            string stringNumber5 = "true";
            bool boolNumber = bool.Parse(stringNumber5);
            Console.WriteLine(boolNumber);


///    int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,
///    转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0

     //尝试转换数据  如果不成功 会返回false结果 
            //成功返回 true
            int ab; //用于输出参数
            string stringNumber6 = "a12";
            bool isSuccess =  int.TryParse(stringNumber6, out ab);
            string  isSuccessStr = isSuccess?"转换成功":"转换失败";
            Console.WriteLine(isSuccessStr);
            Console.WriteLine(ab); // 转换失败结果为 0


///    Convert类型转换 适合各种类型相互转换

            //万能类型转换  任意类型之间转换 但是转换的内容要符合转换后类型的标准
            //否则抛出异常
            string stringNumber7 = "123";
            int intNumber7 = Convert.ToInt32(stringNumber7);
            long longNumber7 =Convert.ToInt64 (stringNumber7);
            short shortNumber7 = Convert.ToInt16 (stringNumber7);
            uint uintNumber7 = Convert.ToUInt32 (stringNumber7);
            ulong ulongNumber7 = Convert.ToUInt64 (stringNumber7);
            ushort ushortNumber7 = Convert.ToUInt16 (stringNumber7);
            float floatNumber7 = Convert.ToSingle(stringNumber7);
            double doubleNumber7 = Convert.ToDouble(stringNumber7);
            //bool类型转换成数字类型 时 对应的是 0 和1
            bool boolNumber7 = true;
            int intNumber8 = Convert.ToInt32(boolNumber7);
            Console.WriteLine(intNumber8);


           //这种情况就无法转换
            string s1 = "123abc";
            int a1 = Convert.ToInt32(s);
            double b1 = Convert.ToDouble(s);


///    ToString()  适合其他类型转换成字符串.

  //其他类型转换成字符串类型 方式1
            int intNumber9 = 100;
            Console.WriteLine(Convert.ToString(intNumber9));
            //其他类型转换成字符串类型 方式2
            string strNumber9 = intNumber9.ToString();
            Console.WriteLine(strNumber9);


八.运算符

  //算术运算符  
            // +  -  *  /  %数字类型大类型和小类型结合 结果默认为大类型结果
            int intNumber = 10;
            int intNumber1 = 40;
            long longNumber = 20;
            //默认类型int
            int intNumber3 = intNumber + intNumber1;
            //隐式类型转换
            long longNumber3 = intNumber + intNumber1;
            //显示类型转换
            int intNumber4 = (int)(intNumber + longNumber);

            int intNumber5 = 100;
            float floatNumber = 10f;
            //字符串类型和字符串类型相加  拼接
            string stringNumber = "123";
            string stringNumber1 = "abc";
            string stringNumber2 = stringNumber + stringNumber1;

            //字符串类型和数字类型相加 拼接
            string stringNumber3 = "123";
            int intNumber6 = 10;
            Console.WriteLine(stringNumber3 + intNumber6);

            //字符串类型和数字类型其他操作 都是不允许的
            //Console.WriteLine(stringNumber3 - intNumber6);
            //Console.WriteLine(stringNumber3 * intNumber6);
            //Console.WriteLine(stringNumber3 / intNumber6);
            //Console.WriteLine(stringNumber3 % intNumber6);

            //单字符和数字类型
            //单字符ascii表对应的10进制数字和数字类型进行数学运算
            char charNumber = 'a';
            int intNumber7 = 10;
            //得到对应的单字符ASCII值
            int charNumber1 = (int)charNumber;

            Console.WriteLine(charNumber1);
            Console.WriteLine(charNumber + intNumber7);
            Console.WriteLine(charNumber - intNumber7);
            Console.WriteLine(charNumber * intNumber7);
            Console.WriteLine(charNumber / intNumber7);
            Console.WriteLine(charNumber % intNumber7);


            //++  --  
            int intNumber9 = 10;
            intNumber9++;
            ++intNumber9;
            //                      12                14             13                 13                                          
            int SumIntNumber = (intNumber9++) + (++intNumber9) - (--intNumber9) + (intNumber9--);
            //26
            Console.WriteLine(SumIntNumber);
            //12
            Console.WriteLine(intNumber9);


            // 关系运算符 

            int intNumber10 = 10;
            int intNumber11 = 20;
            bool isTrue = intNumber10 < intNumber11;
            Console.WriteLine(isTrue);
            string stringNumber10 = "10";
            //字符串无法和数字类型比较
            //bool isTrue1 =  intNumber10 < stringNumber10;
            char charNumber10 = 'a';
            bool isTrue2 =intNumber10 < charNumber10;
            Console.WriteLine(isTrue2);
            // > >=  <=  同上


            // ==    !=
            int intNumber12 = 100;
            int intNumber13 = 200;

            bool isTrue3 = intNumber12 ==intNumber13;
            bool isTrue4 = intNumber12 != intNumber13;

            //字符串类型之间  ==  != 都能使用
            string stringNumber12 = "123";
            string stringNumber13 = "abc";
            char charNumber12 = 'b';
            bool isTrue5 = stringNumber12 == stringNumber13;
            bool isTrue6 = stringNumber12 != stringNumber13;
            bool isTrue7 = charNumber12 == 97;

            //逻辑运算符  &&  ||   !
            // && 短路  当其中一个条件为false时  后续的条件就不再判断 
            bool isTrue8 =   (stringNumber12 == stringNumber13) && (charNumber12 == 97);
            // || 短路  当其中一个条件为true时  后续的条件就不再判断、
            bool isTrue9 = (stringNumber12 != stringNumber13) || (charNumber12 == 97);
            //取反
            bool isTrue10 =    !isTrue9;


            //赋值运算符
            int intNumber15 = 10;
            intNumber15 += 5;  //变量intNumber15 自身增加5


            //sizeof()	返回数据类型的大小。
            Console.WriteLine(sizeof(int));
            Console.WriteLine(sizeof(long));

              
            //判断数据类型方式 GetType()
            int intNumber16 = 10;
            long longNumber17 = 20;
            Console.WriteLine(longNumber17.GetType());
            Console.WriteLine(intNumber16.GetType());
            Console.ReadKey();

         


             //位运算符(了解)
            int A = 60;
            int B = 13;
            //按位与运算  只要其中一个为0 结果0 反之为1
            //A = 0011 1100
            //B = 0000 1101
            //C = 0000 1100
            int C =A & B;
            Console.WriteLine(C);
            //按位或运算  只要其中一个为1 结果1 反之为0
            //A = 0011 1100
            //B = 0000 1101
            //D = 0011 1101
            int D = A | B;
            Console.WriteLine(D);
            //按位异或运算符   两个位置上相同 结果为0  反之为 1
            //A = 0011 1100
            //B = 0000 1101
            //E = 0011 0001
            int E = A ^ B;

            //按位取反运算符   取不同位置的反向 0反向1  1反向0
             //A = 0011 1100
             //F = 1100 0011
            int F = ~A;
            Console.WriteLine(F);
            //左移运算符
            //A = 0011 1100
            //G = 1111 0000 
            int G = A << 2;
            //右移运算符
            //A = 0011 1100
            //G = 0000 1111 
            int H = A >>2;


            // 赋值运算符   =    += -= 

            //  =赋值  运算逻辑从右到左
            int temp1 = 10;

            // +=  让变量自身增加任意的数值
            int temp2 = 20;
            temp2 += 10;   // temp2 =temp2+10;
            temp2 += 1;   //temp2++;  ++temp2

            // -= 
            temp2 -= 5; // temp2=temp2-5;
            Console.WriteLine(temp2);
            // *=  /=  %= 同上

            //<<=	左移且赋值运算符	C <<= 2 等同于 C = C << 2
            //>>= 右移且赋值运算符    C >>= 2 等同于 C = C >> 2
            //&= 按位与且赋值运算符   C &= 2 等同于 C = C & 2
            //^= 按位异或且赋值运算符  C ^= 2 等同于 C = C ^ 2
            //|= 按位或且赋值运算符

C# 中的运算符优先级 

1ca9a4ec39bf4e95b8702f83c3a4b0b4.png

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值