C#语法知识之变量
2.变量
目录
- 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{ //最后执行的代码 }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。