测试小站: 处理网 回收帮 培训网 富贵论坛 老富贵论坛

变量知识 值类型和引用类型 枚举 类型转换 常量

  # 变量

  一个变量就是存储区(内存)中的一个存储单元。变量就是用来存储相应数据的。

  # 变量的声明及赋值

  1.使用变量的步骤

  1.声明一个变量:根据类型分配空间

  2.初始化变量:将数据存入内存空间

  3.使用变量:取出数据使用

  2.变量的声明

  1.变量类型 变量名=数值; int money=100;

  2.变量类型 变量名; int money;

  变量名=数值; money=100;

  3.变量类开 变量名1,变量名2,变量名3,...变量名n; int a,b,c;

  变量类型相同的时候才可以使用。

  3.变量的命名规则

  1.必须符合标识符的命名规则

  2.简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写

  3.区分大小写

  4.虽然可以用汉字作为变量名,最好尽量不要使用汉字作为变量名

  4.简单数据类型

  5.变量的初始化

  使用=做为赋值运算符给变量进行初始化,变量使用前必须初始化,否则会报错。

  初始化3种方法:

  1.单独初始化变量 int sum; sum=368;

  2.声明时初始化变量 int sum=368;

  3.同时初始化多个变量 int a,b,c,d,e; a=b=c=d=e=0;

  6.变量的作用域

  在类中定义的方法是成员变量,在方法中定义的变量是局部变量

  成员变量分2种:静态变量 和实例变量

  1.静态变量 使用static 使用时,直接使用类的变量名称调用

  2.实例变量 首先创建类的对象,再使用类的对象进行调用 对象.变量

  7.使用变量时的一些错误

  在同一个区域不能使用相同的变量名称

  # 值类型

  简单数据类型:整数、实数、字符、布尔

  复合数据类型:结构、枚举

  值类型直接存储值,在栈中进行分配,效率高

  有符号可以存储负值,无符号不可以存储负值

  short int long ushort uint ulong

  byte 0~255

  float 精确到7位数 值后加f或F

  double 精确到15~16位数 值后加d或D

  decimal 精确到28位数 货币计算 值后加m或M

  浮点类型不指定f或是d,默认是double类型

  以上三种赋值时最好加上f、d或是m,否则会发生错误

  bool默认值是false

  # 引用类型

  类、接口、数组、委托

  C#中有两个String和Object

  引用类型主要是存储的对值的引用(堆中的地址)

  string类:是特殊的引用类型

  string是引用类型,但是特殊情况如下:

  string str1="C#";

  string str2=str1;

  Console.WriteLine("str1字符串的值为:" + str1);

  Console.WriteLine("str2字符串的值为:" + str2);

  str1="ASP.NET";

  Console.WriteLine("str1字符串的值为:" + str1);

  Console.WriteLine("str2字符串的值为:" + str2);

  Console.ReadLine();

  结果:

  str1字符串的值为:C#

  str2字符串的值为:C#

  str1字符串的值为:ASP.NET

  str2字符串的值为:C#

  说明:因为string类是不可改变性,实际上当时内存中有3个字符串变量,两个str1并不相同。

  # 值类型和引用类型的区别

  # 枚举

  语法:访问修饰符 enum 枚举名 {值1,值2..}

  特点:

  1.枚举是一组描述性的名称

  2.枚举定义一组有限的值,不能包含方法

  3.对可能的值进行约束

  4.枚举允许描述性名称表示整数值

  5.枚举整数值为0开始,依次增加

  实例:

  定义:

  public enum Mrkj

  {

  CS=1,java=2,c=3

  }

  调用:

  Console.WriteLine("CS的整数值是{0}", (int)(Mrkj.CS));

  用法:用户的权限

  # 类型转换

  1.int不可以自动转换为char

  2.double不可以自动转化成int 精度问题

  # 隐式转换

  在某种条件下,系统自动完成类型转换(即隐式类型转换)

  1.两种类型兼容

  例如:double兼容int 类型

  2.目标类型精度大于源类型

  例如:double类型大于int类型

  3.char类型可以直接转换为double或float

  4.int类型可以直接转换为double

  5.布尔类型不可以转换为数值类型

  6.short和char类型可以直接转换为int类型

  7.float类型可以隐式转换为double类型

  # 显示转换(强制类型转换)

  把高精度的变量转换为低精度的变量时,需要使用强制类型转换(会丢精度)

  转换方式:

  1.(类型名) 表达式 int b=(int)10.2

  不会有运行错误提示,值不正确

  2.Convert.To类型名(表达式) double a=10.5;int c=Convert.ToInt32(a);

  会有运行错误提示,程序中断

  3.类型名.Parse(表达式) double a=10.5;int c=int.Parse(a.ToString());

  只针对数值类型进行转换

  # 装箱和拆箱:

  值类型和引用类型之间相互转换,值类型转换为引用类型的操作叫做装箱操作,把引用类型转换为值类型的操作叫做拆箱操作。

  装箱操作时,是把值类型转换为一个object类型的操作,是隐式类型转换。

  拆箱操作时,是把引用类型显式转换为一个值类型的操作,是显式类型转换。一定要符合类型一直的原则,否则会发生错误。

  # 常量的使用

  程序开发中,遇到固定不变的值,可以定义为常量。

  # 常量的定义及分类

  定义:不能被改变的量

  分类:编译时常量const 运行时常量 readonly

  使用编译时学时定义常量必须初始化,而使用运行时常量可以不给初始值,只能在其构造函数中进行赋值。

  运行常量有先后执行顺序,没被赋值或后赋值之前的值为0或空

posted @ 2021-12-20 15:34  linjingyg  阅读(132)  评论(0)    收藏  举报