快速掌握C#变量类型转换

开发 后端
这里将介绍C#的变量类型、类型及类型转换,以便大家快速掌握C#变量类型转换等重要内容。希望本文对大家有所帮助。

1.变量

变量是指在程序的运行过程中随时可以发生变化的量。

语法:数据类型 变量名;

例如:

string stra="这是一个字符串";

2.常量

也称常数,是一种恒定的或不可变的数值或数据项。

语法: const 数据类型 常量名 = 常量值;

例如:

const string strconst="我是常量喔";

3.数据类型:

在C#当中,分为两种数据类型,值类型与引用类型.

值类型,表示实际数据,只是将值存放在内存中,值类型都存储在堆栈中,包括:

简单类型:int,char,float,double,bool等,还有结构及枚举.

引用类型,表示指向数据的指针或引用,包含内存堆中对象的地址,为 null时则表示未引用任何对象,包括:

类,接口,数组,字符串,委托,Object.

有两种引用类型在C#中受到了特别的重视,它们的C#别名和预定义值类型的C#别名很相像。***种是Object类(C#别名是object, o小写)。这是所有值类型和引用类型的最终基类。因为所有的类型派生自Object,所以可以把任何类型转换为Object类型,甚至值类型也可以转换。所有的值类型都派生自引用类型。第二种是String类。字符串代表一个固定不变的Unicode字符序列。字符串在很多方面都像值类型,而不像引用类型。

4.C#变量类型转换:

字符串与值类型之间的转换:

类型.Parse(字符串),返回值为相应的类型.

Convert.To类型(参数),参数为多种,返回值为类型.

例:

  1. static void Main()  
  2. {  
  3.      int inti = int.Parse("1");//类型.Parse(字符串)  
  4.      int intj = Convert.ToInt32("1");//Convert.To类型(参数)  

强制C#变量类型转换:

在同为值类型或同为引用类时,从较小数据类型到较大数据类型的转换称为扩展转换,否则称为收缩转换。编译器能进行隐式的扩展转换,对于收缩转换必须进行显式的强制性转换。因为收缩转换会导致丢失数据,在转换前我们要检查实际值是否超出目标类型的范围。另一个办法是使用checked运算符,如果转换时丢失数据将抛出一个错误。

如:

  1. static void Main()  
  2. {  
  3.      int inti = 7;//32位的整数  
  4.       long intl = 8;//64位的整数  
  5.       intl = inti;//从小类型int转向大类型long时,为隐式转换  
  6.       inti = (int)intl;//把大类型logn转为小类型int时,就必须得加强制转换符(int)  

装箱与拆箱

定义:把值类型转换为Object的过程称为装箱。

由于值类型与引用类型在内存中的存储方式不同,所以我们在转换的过程的理解上有些复杂,实际的语法跟强制类型转换无区别,我们形象的称之为装箱,与拆箱.对于拆箱的限制其实很好理解,因为谁也不能从装的是苹果的箱子里拆出葡萄来.

  1. static void Main()  
  2. {  
  3.      int j = 4;  //可以以下面正常的转换语法显式地将一个值装箱:  
  4.       object ojb = (object)j;  
  5.      int k = (int)obj;  //使用相同的C#变量类型转换语法可以把装箱的变量拆箱回值类型:  
  6.               
  7.       //对拆箱操作有一些限制。只能将显式装箱的变量进行拆箱。正常的强制转换中的限制在这里也适用。例如,如果把一个long型值装箱为一个对象,我们不能把对象拆箱为一个int型值,虽然在拆箱后可以显式地把long转换为int:  
  8.       long x = 1000;  
  9.      object obj = (object)x;  
  10.      int i = (int)((long)obj);  

本文来自beiguoyouziCSDN博客文章《快速掌握C#之变量类型、类型及类型转换

【编辑推荐】

  1. 定义C#接口学习经验
  2. C# ListBox学习笔记
  3. 操作C# Dataset介绍
  4. C# ODBC访问MySQL数据库
  5. 浅析C#和Java不同点
责任编辑:彭凡 来源: CSDN博客
相关推荐

2009-08-26 10:34:15

C#类型C#变量

2009-08-12 16:37:22

C#变量类型转换

2009-08-24 14:20:13

C# 强制类型转换

2009-08-28 10:08:02

C#数值类型之间转换

2009-08-12 16:26:27

C#数据类型转换

2011-06-08 13:50:39

C#类型转换

2009-09-11 12:41:41

C#类型转换

2009-08-12 14:53:50

C#类型转换函数

2009-09-01 16:35:55

C#操作String数

2009-08-27 10:08:36

C#隐含类型局部变量

2021-03-18 00:04:13

C# 类型数据

2009-08-10 17:25:58

C#匿名类型

2009-08-24 09:55:26

C#接口转换

2009-08-26 15:39:08

C#隐式类型局部变量

2009-08-05 09:09:14

C#调用VC DLL接

2009-08-21 09:57:08

C#操作符IS与AS

2009-08-26 15:46:01

C#匿名类型

2009-08-06 15:30:23

C#类型系统

2009-08-14 17:09:48

C#引用类型

2009-08-31 14:34:46

C#值类型C#结构类型
点赞
收藏

51CTO技术栈公众号