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类型(参数)
  5. }

强制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)
  7. }

装箱与拆箱

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

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

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

学习自http://developer.51cto.com/art/200908/143618.htm

C#变量类型转换,布布扣,bubuko.com

时间: 2025-01-02 03:46:55

C#变量类型转换的相关文章

python中enumerate、变量类型转换

enumerate可以在遍历过程中自动生成新的一列并从0开始计数 1 a = ["hello", "world", "dlrb"] 2 for key, b in enumerate(a, 1): 3 print key, b 我们定义了一个集合a,我们现在想要输出集合a中的每一个元素并且从数字1开始编号,输出结果: 1 hello 2 world 3 dlrb 上面的代码中我们定义了一个变量key,enumerate(a, 1)的意思是在enu

PHP学习笔记-变量类型转换

PHP变量类型的转换非常灵活,最常见的是字符串和数字的转换或者数字/字符串到布尔值得转换. 1.字符串到数字的转换,先写一个例子: <?php $a='37'; $a=$a+3; var_dump($a); ?> 结果是 int(40),将a的值改为'37.5',输出为float(40.5),而改为'37hello',那么输出还是int(40),但是改为'hello37',它输出就是int(3)了,由此可以总结出字符串转换为数字的规律了,字符串转换成数字,就是从左到右依次截取数字,直到不是合法

(三)变量和运算符

JAVA基础(三) --变量和运算符 一.数据的类型 Java的基本数据类型有四种: 整数类型.小数(浮点)类型.布尔类型.字符类型. 二.整数类型 当有变量被定义时,就会被分配到内存中去.比如int a=4;内存中就有一块地方,用来存放a的值.那值具体是多大的地方用来存放a呢?这就跟整数的类型有关了. Byte 占一个字节 表示的范围-128~127 即-2^7~2^7-1 Short 占两个字节 表示的范围-32768到32767 即-2^15~2^15-1 Int 占四个字节 表示的范围-

一道关于PHP类型转换的面试题

原文发表于我的博客 http://starlight36.com/post/php-type-convert 最近在为公司面试新人,经常会问到的一道题目就是PHP类型转换的值,例如: var_dump((int)true); var_dump((string)true); var_dump((string)false); var_dump((bool)"1"); var_dump((bool)"0"); var_dump((bool)""); v

php学习笔记--类型转换

php在变量的定义中不支持变量类型的指定,它是弱类型变量 变量类型转换分为强制转换与自动转换两种 目录 获取数据类型 强制转换 自动转换 类型判断 获取数据类型 var_dump()      --返回类型与值 getType(变量)  --只返回类型字符串 强制转换 可以使用以下两种方法: setType(变量, 类型);     ---改变原变量的类型 在变量使用时,前面加上类型符号,例如$int = (int)$foo   ---原变量类型不变 使用函数intval(), floatvar

类型转换和类型断言

概述 由于Go语言不允许隐式类型转换,不同的类型之间的转换必须做显示的类型转换.而类型转换和类型断言的本质,就是把一个类型转换到另一个类型. 不过Go语言必须做显示的类型转换的要求也有例外的情况: 当普通 T 类型变量向 I 接口类型转换时,是隐式转换的(编译时转换):(T->I) 当 IX 接口变量向I接口类型转,是隐式转换的(编译完成时转换的):(I->I) 类型之间转换的例子 下面是Go语言规范给出的部分例子: *Point(p) // same as *(Point(p)) (*Poi

小白学 Python(4):变量基础操作

人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 前面的文章中,我们介绍了基础数据类型中最常用的数字和字符串,不知道大家还记得什么是变量不?不记得变量也应该记得那被奶茶吧~~~都不记得自己去翻翻前面的文章吧. 变量 在 Python 中使用变量,有一个和 Java 最大的不同是无需先声明,直接在赋值的时候就完成了声明. 如果我们直接使用一个没有赋值的变量,会直接报错. p

JS入门+声明变量+运算符

JavaScript是一门面向对象的,跨平台的脚本语言.    什么是面向对象? 答:对象:属性和方法 什么是跨平台? Js代码可以在各个平台上完美运行,如: 什么是脚本语言? 凡是不能独立执行需要依赖其他程序的,通常都叫做脚本,也叫动态语言.(宿主语言) HTML文件必须在浏览器里执行. JS文件嵌入到HTML文件里才能执行. Js特点: 解释性脚本语言 运行在浏览器(浏览器内核带有js解释器,Chrome v8引擎) 弱类型语言(松散型) 事件驱动(动态) 跨平台 VScode的使用 左侧最

第6篇-JAVA面向对象Ⅱ

第6篇-JAVA面向对象Ⅱ 每篇一句 :敢于向黑暗宣战的人,心中必定充满光明 初学心得: 面向对象 春暖花开 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-05| JAVA面向对象 Ⅱ] 1.JAVA面向对象三大特征 1.封装(Encapsulation); 2.继承(Inheritance); 3.多态(Polymorphism) 2.面向对象 之 封装 什么是封装? 封装就是隐藏实现细节,仅对外提供访问接口 封装的类型有:属性封装.方法封装.类封装.组件封装.模块化封装