C#——类型转换
来源:互联网 发布:sql存储过程经典实例 编辑:程序博客网 时间:2024/06/11 19:31
类型转换
一、c#类型转换可以分为两大类:一类是同一类型转换(Cast),另一类是不同类型转换(Convert)。
(一)同一类型转换(Cast)可分为两种:
(1)隐式转换:如果当目标类型一定能满足源类型转换过去后的要求的话就是隐式转换。
(2)显示转换(强制转换):如果当目标类型不一定能满足源类型转换过去后的要求的话就需要显示转换(程序员自已负责)。
具体解释参考下图:
(二)不同类型转换:Convert
二、具体实例
<1>同一类型数据转换实例:
功能段1:怎样打印数据类型的范围
功能段2:隐式转换
功能段3:强制转换(byte)
namespace Cast入门{ class Program { static void Main(string[] args) { #region 怎样打印数据类型的范围 Console.WriteLine("int的最大值是{0},最小值{1}",int.MaxValue,int.MinValue); Console.WriteLine("byte的最大值是{0},最小值{1}",byte.MaxValue,byte.MinValue); //int i =99999999999999999; 错误:99999999999999999超出int整数范围 #endregion #region 隐式转换 byte b = 3; int i = b; //(一个小的范围里的数放在一个大的范围里一定会放下的,这就好比小容器一定能放在大容器里)隐式转换 Console.WriteLine(i); #endregion #region 强制转换(byte) //b = i; (一个大的范围里的数放在一个小的范围里可能会放不下,编译器不能保证一定能转换成功。) b=(byte)i; //强制转换 Console.WriteLine(b); //注意:标byte与不标byte的区别 i = 2; b = i; //不标上byte,程序报错。 Console.WriteLine(b); i = 2; b = (byte)i; //标上byte,程序不报错了,但程序员来负责 Console.WriteLine(b); //注意:标byte与不标byte的区别 i = 2000; b = i; //不标上byte,程序报错. Console.WriteLine(b); i = 2000; b = (byte)i; //标上byte,程序不报错,错误程序员来负责。 Console.WriteLine(b); #endregion Console.ReadKey(); } }}
注意:在隐式转换中注意标注byte,它做代表的意思是:强制转换,程序不再报错,转换结果程序员自己负责。
<2>不同类型数据转换实例:
namespace Convert转换{ class Program { static void Main(string[] args) { string s = "123"; // i = (int)s; //不能在string和int之间进行强制类型转换,只能用convert int i = Convert.ToInt32(s); Console.WriteLine(i); Console.ReadKey(); } }}
<3>同一类型数据转换和不同类型数据转换实例的综合比较:
namespace 类型转换{ class Program { static void Main(string[] args) { //同一类型数据之间的转换:隐式转换、显示转换(强制转换) byte b1 = 2; int i1 = b1; //隐式转换(同一类型的数据,:小→大) Console.WriteLine(i1); int i2 = 2000; byte b2 = (byte)i2; // 强制转换(同一数类型:大→小) Console.WriteLine(b2); Console.ReadKey(); // 不同类型数据之间的转换:convert string s = "123"; // i = (int)s; //不能在string和int之间进行强制类型转换,只能用convert int i = Convert.ToInt32(s); //convert:不同类型数据之间的转换 Console.WriteLine(i); Console.ReadKey(); } }}
总结(个人理解):Cast和convert两大类型转换的区别:
Cast:同一类型的数据的转换,只是大小范围不同之间同一类型之间的转换(比如:byte类型和int类型之间的转换)
(1) 小范围转换为大范围转换:隐式转换(同一类型的数据,:小→大)
(2)大范围转换为小范围转换:强制转换(同一类型的数据:大→小)
Convent:不同类型的数据的转换,不可以进行强制转换,只能用convert(比如:int类型和string类型之间的转换)
- C#——类型转换
- C#——类型转换
- C++——类型转换
- 《C程序设计语言》——类型转换
- c——显式类型转换
- C++—类型转换(Type Casting)
- <C/C++> 类型转换
- C/C++:类型转换
- C语言笔记——自动类型转换和强制类型转换
- c——隐式转换——内置类型
- c——隐式转换——复合类型
- C/C++ —— 十六进制类型字符串的转换
- 关于强制类型转换——《C专家编程》笔记
- C++:类型转换——static_cast和const_cast
- 黑马程序员——C基础之类型转换
- C#——自定义类的类型转换
- C/C++ — 浅析C++的强制类型转换
- Javascript—类型转换
- NK 1137 石子合并问题
- ASP.NET页面间数据传递的方法
- Linux文件及目录权限命令
- 一篇故事讲述计算机网络
- 网页显示后一段时间后显示,如果选择“咨询”,则弹出来聊天窗口。如果选择“稍后再说”,则窗口消失,但是过一段时间又弹出来
- C#——类型转换
- 在家也能健身(01):肱二头肌
- JAVA 反射
- ubuntu11.10 + mono2.10.5 + nginx1.0.5 + mysql5.5.21 环境下,完美运行.NET4.0的网站
- 把臭袜子"发"给你
- OpenCV 鼠标事件 注意事项
- VC中常见的108个问题
- 在家也能健身(02):肱三头肌
- 关于23种设计模式的有趣见解