当前位置:首页 > C#学习

类型转换Cast和Convert

小道8年前 (2018-08-20)C#学习8461

把源类型赋值给目标类型,两个类型不一致的时候会发生类型转换。a=b,b是源,a是目标。

隐式转换、显式转换。当目标类型一定能满足源类型转换过去后的要求的话就是隐式转换;如果当目标类型不一定能满足源类型转换过去后的要求的话就需要显式转换(程序员自己负责)。

比如:把中国人转换为人是隐式转换,把人转换为中国人则是显式转换(强制转换)

            int i;//定义一个整型变量
            byte s=100;//byte数据范围:0~255
            i = s; //都是数据类型,int类型比byte 存储数据多 可以直接赋值,
            Console.WriteLine("s的值为:{0}",s);//输出s的值。
            Console.WriteLine("i的值为:{0}",i);//输出i的值。
            s = (byte)i;// byte类型 比int 类型存储数据少,前面必须强制转换。  可能发生溢出。

输出结果:

image.png

            int i = 88888887;//定义一个整型变量
            byte s;//byte数据范围:0~255
            s = (byte)i;// byte类型 比int 类型存储数据少,前面必须强制转换。  可能发生溢出。
            Console.WriteLine("s的值为:{0}", s);//输出s的值。
            Console.WriteLine("i的值为:{0}", i);//输出i的值。

输出结果:

image.png

PS:byte s类型,已发生溢出,显示值为:“55”.正常值为:“88888887”。是由于byte最大支持到255。


Convert不再是内存级别的转换,而是考虑数据意义的转换。可以把姓名Convert成人。Convert是一个加工、改造的过程。

            string s = "1111";//定义一个字符串变量s,赋值为:"1111"(看起来想数字。)
            int i = Convert.ToInt32(s);//将字符串s 转变成整型赋值给i
            i = i + 1;//i+1 赋值给i
            Console.WriteLine("i的结果为:{0}",i);//输出i的结果。
            s = s + 1;//将s+1赋值给s
            Console.WriteLine("s的结果为:{0}", s);//输出s的结果。
            Console.ReadKey();

输出结果:

image.png

PS:从结果可以看出,i是数字+1=1112,s是在1111后面+上8=11118。


扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/20.html

标签: CastConvert
分享给朋友:

“类型转换Cast和Convert” 的相关文章

面向对象版聊天机器人

面向对象版聊天机器人

机器人有不同的名字、维护自己的FullLevel,可以SayHello(我叫***),可以喂食(Eat(int foodCount)),可以对它说话(Speak),对异常情况(错误的喂饭数字,喂的太多撑死了)进行处理,有两个机器人供选择,一开始通过1、2数字选择聊天机器人。  &…

命名空间namespace

命名空间namespace

namespace(命名空间),用于解决类重名问题,可以看做“类的文件夹”。在代码中使用其他类的时候需要using类所在的namespace。System.Collections.ArrayList,快速引入的方法,右键→解析(Ctrl+.)。为什么使用Convert、Console等类不需要自己写…

WinForm文本框

WinForm文本框

文本框的几种模式:Multiline(多行)、PasswordChar(密码)将文本框的PasswordChar设为*就是密码框效果,将MultiLine属性设置为true并且将高度拉到合适的大小就是多行效果,textBox4.AppendText("hello"+"\…

登录系统

登录系统

登录界面。登录错误三次退出程序,假设用户名、密码是admin、888888,不区分大小写。(易错点:局部变量与类变量)退出程序this.Close()或者Application.Exit()    public partial class&…