当前位置:首页 > C#学习 > 正文内容

类型转换Cast和Convert

小道7年前 (2018-08-20)C#学习6924

把源类型赋值给目标类型,两个类型不一致的时候会发生类型转换。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” 的相关文章

常量

常量

const常量。常量名要大写。一定不会变化的值才能声明为常量。常量一旦声明,下面就不可更改(再赋值)。    class Program     {     &nbs...

简单的加法计算器

简单的加法计算器

简单的加法计算器,用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。int.TryParse、MessageBox.Show。        pri...

登录系统

登录系统

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

修改密码

修改密码

修改密码。界面上有旧密码、新密码、重复新密码,假设旧密码为888888,两次输入的新密码必须和旧密码不一样,并且两次输入的新密码必须一致。        private void button1_Cl...