C#语法知识之变量

04-27 1410阅读

2.变量

C#语法知识之变量

目录

  • 2.变量
    • 一、知识点
      • 1、折叠代码
      • 2、声明变量和变量类型
      • 3、为什么有那么多不同类型的变量
      • 4、多个相同类型的变量同时申明
      • 5、变量初始化相关
        • 思考
        • 二、变量的本质
        • 三、变量的命名规范
        • 四、常量
        • 五、转义字符
        • 六、类型转换
          • 1、隐式转换
          • 2、显式转换
          • 七、异常捕获

            一、知识点

            1、折叠代码

            //#region按Tab键
            	#region MyRegion(描述)
                
            	#endregion
            //本质是编译器提供给我们的预处理指令,发布代码是会被自动删除
            

            2、声明变量和变量类型

            ​ 变量就是可以变化的容器,用来存储各种不同类型数值的一个容器;不同的变量类型可以存储不同类型的值。

            //变量类型 变量名 = 初始值;
            	int i = 1;
            

            ​ 各种变量类型

            //1、有符号的整形变量 是能存储一定范围正负数包括0的变量类型
                sbyte 	-128~127 之间的数 1字节(占内存)
            	int		-21亿~21亿	   4字节 
            	short	-3万~3万		   2字节
            	long	-9百万兆~9百万兆	8字节
            //2、无符号额整形变量 存储一定范围0和正数的变量类型
                byte 	0~255			1字节
                uint	0~21亿		   4字节
                ushort	0~6万		   2字节
                ulong	0~18百万兆		  8字节
            //3、浮点数
                float	存储从非0数8位有效数字(有效数字是从左到右)4字节
                	float f = 0.0012345678f;
            	double	存储17位有效数字(抛弃的数字会四舍五入)8字节
                decimal	16字节
                    decimal de = 0.000123456789999m;
            		de = 0.099m; //(变量的修改)
            //4、特殊类型
            	bool	只存储true或false	1字节
                char 	字符类型:用来存储单个字符的变量类型	2字节
                    char c = 'a'; 
            	string	字符串类型:存储多个字符
            

            3、为什么有那么多不同类型的变量

            //不同的变量,存储的范围和类型不一样,本质是占用的内存空间不同,选择不同的数据类型装载c不同的数据
            数字用int	小数用float 字符串用string 真假用bool
            

            4、多个相同类型的变量同时申明

            //变量类型 变量名 = 初始值,变量名 = 初始值...;
            int i = 1,a = 2,b = 3;
            

            5、变量初始化相关

            //变量声明时,可以不设置初始值,但这样不安全
            int i;
            i = 1;
            
            思考

            1、下面的代码输出结果是?

            double num = 36.6;
            Console.WriteLine("num");
            

            2、声明float类型变量时,为何要在数字后面加f?

            答案:1.num 2.不加f默认为double类型

            二、变量的本质

            1、变量的存储空间

            1byte = 8bit	//一字节等于8位
            1KB/MB/GB/TB = 1024byte/KB/MB/GB
            //通过sizeof方法,可以获取变量类型所占的内存空间(单位:字节)
                int sbyteSize = sizeof(sbyte);
            

            2、变量的本质(2进制)

            变量的本质是二进制,就是一堆0和1
            计算机中的存储最小单位为 bit(位),它只能表示0和1 
            为了方便数据表示,人们定义一个byte存储单位,由8bit组成
            1byte = 0001 0100	//通过0和1不同的排列组合,表示各种含义
            //2进制转10进制的规则
                从右往左看,最右边的第一位为第0位,如果该位不为0,则加上2的n位次方
                2^0 + 2^1 + 2^3 + 2^4 + 2^5 + ... +2^n	//规律:
                数:1(0)1(0)1(0)1(0) 1(0)1(0)  1(0) 1(0)   1(0)  1(0)
                位:0 + 1 + 2 + 3 +  4 + 5  +  6 +  7  +   8  +   n
                值:1 + 2 + 4 + 8 + 16 + 32 +  64 + 128 + 256 +  2^n
                2进制里若位n上对应的数为0,则值为0,若为1,则+位n对应的值
                例:
                101 = 1+0+4 =5
                1111 = 1+2+4+8 =15
                11001 = 1+0+0+8+16 =25
            //byte为一个字节,8位,对应内存如下:
                byte : 0000 0000 最大存储 1111 1111 值为255
                sbyte :0(符号位)000 0000
            

            三、变量的命名规范

            1、必须遵守的规则

            1、不能重名
            2、不能以数字开头
            3、不能使用关键字
            4、不能有特殊符号(下划线除外)
            

            2、常用命名规则

            1、驼峰命名法  	 //首字母小写,之后单词首字母大写(变量)
            	string myName = "xxx";
            2、帕斯卡命名法	//所以单词首字母都大写(函数、类)
                string MyName = "xxx";
            //C#中对大小写是敏感的、区分的
            

            四、常量

            1、常量的声明

            关键字 const
            const 变量类型 变量名 = 初始值;
            const float PI = 3.141592653f;
            

            2、常量的特点

            1、必须初始化
            2、不能被修改
                //作用:声明一些常用不变的变量
            

            五、转义字符

            1、转义字符的使用

            //什么是转义字符
            	它是字符串的一部分,用来表示一些特殊含义的字符;比如在字符串中表现单引号、引号、空行等
            //常用转义字符
                单引号\'	双引号\"	换行\n 	 斜杠\\
            //不常用转义字符
                制表符\t	光标退格\b	空字符\0	报警音\a
            

            2、取消转义字符

            @
            string str = @"xxx";
            

            六、类型转换

            1、隐式转换

            1、什么是类型转换
            	//不同变量类型之间的相互转换
            2、什么是隐式转换
                //不同类型之间自动转换(不需要人为去操作)
            3、左(大范围)装右(小范围)
            

            1、相同大类型之间的转换

            //有符号 long-->int-->short-->sbyte
                long l = 2; int i = 2; l = i;
            //无符号 Ulong-->uint-->ushort-->byte
            	ulong ul = 2; uint ui= 2; ul =ui;
            //浮点数 decimal(无隐式转换)  double-->float
            	double d = 1.1; float f = 1.1f; d = f;
            //特殊类型 bool char string	不存在隐式转换
            

            2、不同大类型之间的转换

            //无符号装有符号
            	有符号的变量不能隐式转换成无符号的变量
            //有符号装无符号
                要范围大于无符号 long-->uint int --> byte
            //浮点数装整数
                浮点数可以装载任何类型的整数 double-->float-->ulong
                decimal 可以隐式存储所有整形
            //特殊类型
                char 可以隐式转换成整形和浮点型 int->char float->char
                    char c = 'A'; int i = c; (int a ='a')
                //char 隐式转换的数字是对应的ASCII码
            总结:
                double --> float --> 整形(有、无符号)-->char
                decimal --> 整形(有、无符号) -->char
                string 和 bool 不参与隐式转换
            

            2、显式转换

            ​ 手动处理、强制转换

            1、括号强转

            作用:一般情况下,将高精度的类型强制转换为低精度
            语法:变量类型 变量名 = (变量类型)变量;	//注意精度、范围问题
            	 int i =1; short s = (short)i;  //强转注意范围
            //无符号转有符号
            	int i = -1; uint ui = (uint)i; //会异常
            //浮点转整形
            	int i = (int)1.86f; //会丢失精度,不会四舍五入
            //数值转char
            	char c = (char)10;
            //bool和string 不能通过括号强转
            

            2、Parse法

            作用:把字符串类型转换为对应的类型
            语法:变量类型.Parse("字符串")
            //注意:字符串必须能够转换成对应类型(确保类型,精度大小),否则报错
                int i = int.Parse("123");
            

            3、Convert法

            作用:更加准确的将各个类型之间进行相互转换
            语法:Convert.To目标类型(变量或常量);
            //注意:填写的变量或常量必须正确,否则出错
            //转字符串
            	int a = Convert.ToInt32("123");
            	int a = Convert.ToInt32(1.66f);	//Convert.To会四舍五入,精度更高
            //把bool类型也可以专场数值类型;true为1,false为0
            	int a = Convert.ToInt32(ture);
            //每一个类型都有对应的Convert方法
            	sbyte sb = Convert.ToSByte("1");
            	short s = Convert.ToInt16("1");
                int i = Convert.TOInt32("1");
                long l = Convert.ToInt64("1");
                    
                byte b = Convert.ToByte("1");
                ushort us = Convert.ToUInt16("1");
                uint ui = Convert.ToUInt32("1");
                ulong ul = Convert.ToUInt64("1");
                    
                float f = Convert.ToSingle("11.2");		//特殊
                double d = Convert.ToDouble("11.2");
                decimal de = Convert.ToDecimal("11.2");
                    
                bool bo = Convert.ToBoolean("ture");  //特殊
                char c = Convert.ToSByte("A");
            	string str = Convert.ToString(123);
            

            4、其他类型转string

            作用:拼接打印
            语法:变量.ToString();
            	string str = true.ToString();
            //字符串拼接时,会自动调用ToString
            	Console.WriteLine("1"+true);
            

            七、异常捕获

            1、作用

            避免代码报错时,造成程序异常卡死
            string str = Console.ReadLine();
            int i = int.Parse(str);
            

            2、基本语法

            try{
                //捕获异常代码块
            }catch{
                //代码出差,执行catch里的代码,catch(Exception e)具体报错跟踪
            }finally{
                //最后执行的代码
            }
            
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]