C#中的自动类型转换和强制类型转换

 更新时间:2019年08月16日 11:33:48   作者:怡红公子0526  
这篇文章主要介绍了C#中的自动类型转换和强制类型转换,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下

前面已经认识了不同的数据类型,你们有没有尝试过让不同的数据类型进行运算呢?

int a = 1;
double b = a;
Console.WriteLine(b);

运行结果是:1

我们把一个整型的变量赋值给了一个浮点型的变量,可以正常的输出,如果我们把一个浮点型的变量赋值给一个整型的变量呢?

double a = 1;
int b = a;
Console.WriteLine(b);

这样就会报错。

为什么呢?因为我们之前说过,变量就像一个容器,里面存放着变量的值。而数据类型就相当于容器的类型,决定了容器能够存放什么样的值。

试想,生活中我们把小盒子里的东西放进大盒子里,是没有问题的。数据类型也是这样。我们把整型的数据赋值给浮点型是可以放进去的,放进去之后里面的值1其实也就变成了浮点型,即1.0,不过c#输出的时候,很聪明的把后面的.0去掉了。

结论:占字节小的可以向占字节大的自动转换,但占字节大的不能向占字节小的自动转换。

这种数据类型的转换是自动完成的,所以叫做自动类型转换。

如果我偏要把字节大的赋值给字节小的怎么办呢?试想,生活中我们把大盒子中的东西装进小盒子,东西少还好,东西多了就只能装进去一部分了。现在我说,我不听我不听,我就是要把大盒子的东西装进小盒子。哭唧唧……

没办法,我们只能使用强制类型转换,即把占字节大的数据类型强制转换为占字节小的数据类型。

double a = 1.2;
int b = (int)a;
Console.WriteLine(b);

我们在引用变量a给b赋值时,在a前面加了个括号,就是把数据类型强制转换为括号里的数据类型。我们运行一下,结果是:1

a的值是1.2,强制类型转换赋值给了b之后就只剩1了,因为整型的没有小数部分,所以装不下了啊。

总结

以上所述是小编给大家介绍的C#中的自动类型转换和强制类型转换 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢

相关文章

  • C# FileStream实现多线程断点续传

    C# FileStream实现多线程断点续传

    这篇文章主要为大家详细介绍了C# FileStream实现多线程断点续传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • c#入门之枚举和结构体使用详解(控制台接收字符串以相反的方向输出)

    c#入门之枚举和结构体使用详解(控制台接收字符串以相反的方向输出)

    这篇文章主要介绍了c#入门之枚举和结构体使用详解,最后提供了编写控制台应用程序接收字符串并做相应处理的小示例,需要的朋友可以参考下
    2014-04-04
  • C#中的for和foreach的性能对比

    C#中的for和foreach的性能对比

    这篇文章主要介绍了C#中的for和foreach的性能对比,在C#中,for和foreach是两种常用的循环结构,用于迭代集合中的元素,尽管它们在功能上相似,但它们在性能、空间效率和垃圾回收(GC)方面有一些区别,需要的朋友可以参考下
    2023-10-10
  • 如何用WindowsForm给窗口添加一些简单的动画效果

    如何用WindowsForm给窗口添加一些简单的动画效果

    这篇文章主要介绍了如何用WindowsForm给窗口添加一些简单的动画效果,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • c#打包文件解压缩的实例

    c#打包文件解压缩的实例

    下面小编就为大家分享一篇c#打包文件解压缩的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • unity实现场景跳转

    unity实现场景跳转

    这篇文章主要为大家详细介绍了unity实现场景跳转,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • C#任务并行Parellel.For和Parallel.ForEach

    C#任务并行Parellel.For和Parallel.ForEach

    这篇文章介绍了C#任务并行Parellel.For和Parallel.ForEach的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • TortoiseSVN使用教程

    TortoiseSVN使用教程

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。本文给大家介绍TortoiseSVN使用教程,对tortoisesvn使用相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • C#使用foreach循环遍历数组完整实例

    C#使用foreach循环遍历数组完整实例

    这篇文章主要介绍了C#使用foreach循环遍历数组,结合完整实例形式较为详细的分析了C#遍历数组的相关技巧,需要的朋友可以参考下
    2016-06-06
  • C# wpf使用DockPanel实现制作截屏框

    C# wpf使用DockPanel实现制作截屏框

    做桌面客户端的时候有时需要实现截屏功能,能够在界面上框选截屏,本文就来为大家介绍一下wpf如何使用DockPanel制作截屏框吧,感兴趣的可以了解下
    2023-09-09

最新评论