C#自动类型转换与强制类型转换的讲解

 更新时间:2019年01月22日 09:02:33   作者:Mogul1  
今天小编就为大家分享一篇关于C#自动类型转换与强制类型转换的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

自动类型转换

隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。

转换规则

从存储范围小的类型到存储范围大的类型。

整数具体规则为:

         byte→short(char)→int→long→float→double

也就是说byte类型的变量可以自动转换为short类型,示例代码:

     byte b = 10;
     short sh = b;

在类型转换时可以跳跃。示例代码:

     byte b1 = 100;            
     int n = b1;

强制类型转换

显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

转换规则

从存储范围大的类型到存储范围小的类型。

具体规则为:

         double→float→long→int→short(char)→byte

例如:

double d = 5673.74;
int i;
i = (int)d;

1.Convert.ToInt32()       2.  int.Parse()

Convert.ToInt32() 则可以将多种类型(包括 object  引用类型)的值转换为 int  类型,因为它有许多重载版本:

  •     public static int ToInt32(object);
  •     public static int ToInt32(bool);
  •     public static int ToInt32(byte);
  •     public static int ToInt32(char);
  •     public static int ToInt32(decimal);
  •     public static int ToInt32(double);
  •     public static int ToInt32(short);
  •     public static int ToInt32(long);
  •     public static int ToInt32(sbyte);
  •     public static int ToInt32(string);

Int32.Parse()表示将包含数字的字符串转换为32 位有符号整数,属于内容转换

  •     如果 string 为空,则抛出 ArgumentNullException 异常;
  •     如果 string 格式不正确,则抛出 FormatException 异常;

可以看出来,Convert.ToInt32() 的功能是最强大的,它把Int32.Parse()功能包括了,也是说是Int32.Parse()是Convert.ToInt32() 的一种特殊情况。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • C#区分中英文按照指定长度截取字符串的方法

    C#区分中英文按照指定长度截取字符串的方法

    这篇文章主要介绍了C#区分中英文按照指定长度截取字符串的方法,涉及C#操作字符串的正则匹配与截取等常用操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • C#实现软件监控外部程序运行状态的方法

    C#实现软件监控外部程序运行状态的方法

    这篇文章主要介绍了C#实现软件监控外部程序运行状态的方法,可实现监控另一个程序的运行状态及触发相应事件的功能,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • C#发送Get、Post请求(带参数)

    C#发送Get、Post请求(带参数)

    本文主要介绍了C#发送Get、Post请求,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • C#处理和对接HTTP接口请求的方法

    C#处理和对接HTTP接口请求的方法

    下面通过四步给大家介绍了c#处理和对接http接口请求的方法,分步骤介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-08-08
  • C#结合SMTP实现邮件报警通知的实现示例

    C#结合SMTP实现邮件报警通知的实现示例

    这篇文章主要介绍了C#结合SMTP实现邮件报警通知的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解C# FileStream类

    详解C# FileStream类

    这篇文章主要介绍了详解C# FileStream类的相关知识,文中讲解的非常细致,代码供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C#日历样式的下拉式计算器实例讲解

    C#日历样式的下拉式计算器实例讲解

    如果我们正在做一个类似于库存控制和计费系统的项目,有些部分可能必须手动计算数值。因此,用户就不得不使用计算器得到结果,再填入到输入字段中,或者在工作窗口上单独打开一个计算器窗口。总之,各种不便和麻烦。
    2015-09-09
  • C#设计模式之适配器模式与装饰器模式的实现

    C#设计模式之适配器模式与装饰器模式的实现

    创建型设计模式主要是为了解决创建对象的问题,而结构型设计模式则是为了解决已有对象的使用问题。本文将用C#语言实现结构型设计模式中的适配器模式与装饰器模式,感兴趣的可以了解一下
    2022-04-04
  • Unity 从Resources中动态加载Sprite图片的操作

    Unity 从Resources中动态加载Sprite图片的操作

    这篇文章主要介绍了Unity 从Resources中动态加载Sprite图片的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C# 泛型参数转换

    C# 泛型参数转换

    本文介绍了C# 泛型参数转换的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论