C#数据类型

概述

我们编写的程序主要是与数据打交道的,数据有多种类型,例如:学生考试成绩都有分数,分数是用小数表示的,如90.5分。再如学生的中文名是由汉字组成的,英文名是由字母组成的,这些都是文本,属于字符串类型。

数据类型

C#中的数据类型分2大类:值类型和引用类型。值类型是存储在内存的栈上,引用类型存储在堆上。

值类型

C#中的值类型也称为基本数据类型,值类型在内存的栈上存储,存取效率比较高,性能好。
值类型是使用struct定义的,如图 所示:
在这里插入图片描述
struct表示结构,这也说明,在C#中结构也是值类型。另外,C#中的枚举也是值类型。

  1. 整数类型:整型只能用来存储整数,默认值是0。C#中的整型类型有:
  • byte:占1字节(8位)内存空间,存储0-255之间的正整数,对应于System.Byte结构。
byte num1 = 200;
  • short:占2字节(16位)内存空间,存储-32,768 到 32,767,对应于System.Int16结构,short也称为短整型。
short num2=32767;
  • int:占4字节(32位)内存空间,存储-2,147,483,648 到 2,147,483,647,对应于System.Int32结构。Int是默认的整数类型。
int num3 = -2147483648;
  • long:占8字节(64位)内存空间,存储-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807,对应于System.Int64结构。long存储的整数范围最大,但也消耗内存,所以在选择时要注意,够用即可。long也称为长整型
long num4 = 3000000;
  1. 浮点类型:浮点类型用来存储小数的,默认值是0.0 。有两个浮点类型:
  • float:用来存储单精度小数,范围是±1.5e−45 到 ±3.4e38,最大精确到7位小数对应于System.Single结构。赋值时要在后面加上f。
float f1 = 1.1234567f;
  • double:用来存储双精度小数,范围是±5.0e−324 到 ±1.7e308,最大精确到15-16位double是默认的浮点类型 。对应于System.Double结构。使用时要在后面加上d,也可省略d。
double d1 = 0.987654321d;
  1. 布尔类型:布尔类型使用bool表示,占1字节存储空间,只能存储两个值true(真)或false(假),不能是别的值。对应于System. Boolean结构
bool b1 = true;
bool b2 = false;
  1. 货币类型:decimal,精度28位。后面要加m

引用类型

在C#中引用类型是存储在内存的堆上,使用引用地址来访问。引用类型要使用new关键字来实例化对象。
如:我们在第1单元提到的System.Text命名空间下的StringBuilder类型就是一个引用类型,使用时,要使用new实例化一个对象:

StringBuilder sBuilder = new StringBuilder()

另外,还有一个常用的类型string类型,用来存储字符串,使用双引号括起来,string类型也是引用类型。如:string s1 = “ABC123”;
常用的引用类型有:字符串string、数组、类

常量

例如:圆周率的值,是一个固定值。在程序执行期间其值不可发生改变的量,称为常量

定义

常量的定义必须使用const关键字来定义。语法如下:
const 类型 常量名 = 值;
在这里插入图片描述
定义的常量必须要初始化,也就是赋值,否则是要报错的。

变量

C#中的变量是指在程序执行过程中其值可以发生改变的量,称为变量,而常量是不变的。

定义

定义(声明)一个变量是由一个类型(如int类型)和跟在后面的一个变量名(变量名遵守标识符的规则)组成,定义的变量以分号结束。

//定义变量
int intA;
double doubleA;
float floatA;
string strA;
bool bA;

变量名的第一个字母都要小写,后面其它的单词第1个字母大写。

初始化和赋值

在C#中,定义的变量必须初始化才可以使用,否则会报错。

例如:我们预定酒店,先预定,但还不能使用,必须付款之后才可入住。

变量的初始化就是给变量赋值一个初始值,在C#中给变量赋值要使用=号。=称为赋值号`。如:

int intA = 0;

变量初始化之后就可以参与运算了。如:

int intB = intA * 100;

在此行代码中,将intA的值乘以100之后再赋值给intB变量。将=右边的值赋给左边的变量。右边的值也可以是其它的变量。如:

int intA = 0;
int intC = intA;

Var关键字的使用

Var关键字是C# 3.5推出的定义变量的类型,称为类型推断。用来推断变量的类型。C#中所有的类型都可以使用var来表示:

//var可以用来定义所用类型的变量

//使用int定义的变量
//int x1 = 100;

//使用var定义的变量
var x1 = 100;

//使用string定义的变量
//string str1 = "abc";

//使用var定义的变量
var str1 = "abc";

全局变量和局部变量

在这里插入图片描述

  1. 在类范围内定义的变量是全局变量,全局变量可以在整个类范围内使用。
  2. 在方法内定义的变量是局部变量,局部变量只能在定义的方法内使用。

数据类型转换

C#中的数据类型转换有2种:隐式转换和显式转换,显式转换也称 为强制类型转换,隐式转换也称为自动转换
如:

int intD = 100;
//隐式转换,范围小的数据包含在范围大的数据中。
double doubleD = 100;

//强制转换
//使用()
double doubleE = 123;
int intE = (int)doubleE;
//使用Convert()方法
intE = Convert.ToInt32(doubleE);
在进行强制类型转换时要注意,如果转换的数据范围超出了目标数据范围,则会报错。

在进行强制类型转换时要注意,如果转换的数据范围超出了目标数据范围,则会报错。
在这里插入图片描述
凡是使用Convert进行转换时,都是强制类型转换,要注意源数据与目标数据类型的范围。

ToString()方法的使用

ToString()方法是微软已经封装好的方法,用来快速转换字符串类型。

//转换为字符串
string strB = intA.ToString();

装箱和拆箱

值类型—隐式转换—引用类型(装箱)
引用类型---显示转换---值类型(拆箱)
Object(中文是对象)类型是引用类型,是所有数据类型的根。
如下:

int intF = 100;
//装箱
object oF = intF;
//拆箱
int intF1 = (int)oF;

枚举类型

枚举类型的定义

在这里插入图片描述

枚举类型的使用

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值