C# 基础 学习 之 数据类型转换

C#  中包含以下几种的类型的转换:

隐式转换: 由于该转换是一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法。例如,从较小整数类型到较大整数类型的转换以及从派生类到基类的转换都的转换(byte, short, int, long, fload, double 等) 小类型 到 大类型 可以的  比如 A 房子 有 两个 房间 , 每个房间 一个 人 , 你 可以把它 放到  b 房子里,(b 房子有 四个房间), 可是 反过来 就不行了, 会有 两个人 不知道怎么处理

显示转换(强制转换): 显式转换需要强制转换运算符。在转换中可能丢失信息时或在出于其他原因转换可能不成功时,必须进行强制转换。典型的例子包括从数值到精度较低或范围较小的类型的转换和从基类实例到派生类的转换

用户自定义转化:可以定义一些特殊的方法来执行用户定义的转换,从而使不具有基类–派生类关系的自定义类型之间可以显式和隐式转换。

 

Int.Parse()、Convert.toInt32()和(int)区别:

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

Convert.toInt32()表示可以将多种类型(包括 object  引用类型)的值转换为 int  类型

Int32.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false

Int.Parse() 和 Convert.Toint32()的区别

1.Int.Parse()当传入的是Null,将会抛出异常;Convert.toInt32()当传入的是Null,将返回0

2.Int.Parse()传入的是” ”,将会抛出异常;Convert.toInt32()传入的是” ”,也将抛出异常

性能上:Int32.TryParse()优于Int32.Parse()优于Convert.ToInt32()

Convert.ToInt32会把最终的解析工作代理给Int32.Parse,而Int32.Parse和Int32.TryParse则分别把解析工作直接代理给Number.ParseInt32和Number.TryParseInt32,前者在出现解析,错误时会抛出异常,而后者则仅仅返回 false

数值字符串 和 数值 之间的 转换:

  在C#中 字符串是用一对双引号包含的若干字符来表示的,但是 “1234” 像这样的 数值字符串 使用上述的 int.paseint();

字符串 和 字符数组 之间的 转换

   字符串类 System.String 提供了一个 void ToCharArray() 方法,该方法可以实现字符串到字符数组的转换

     string str = "boke";

     char[] char = str.tocharArray();

字符串和字节数组之间的转换

 使用类: System.Text.Encoding。该类提供了 bye[] GetBytes(string) 方法将字符串转换成字节数组,还提供了 string GetString(byte[]) 方法将字节数组转换成字符串

各种数值类型和字节数组之间的转换:

     现在介绍此类转换的主角:System.BitConverter。该类提供了 byte[] GetBytes(…) 方法将各种数值类型转换成字节数组,也提供了 ToInt32、ToInt16、ToInt64、ToUInt32、ToSignle、ToBoolean 等方法将字节数组转换成相应的数值类型。由于这类转换通常只是在需要进行较细微的编码/解码操作时才会用到,所以这里就不详细叙述了

  

原文地址:https://www.cnblogs.com/lfyy/p/5135232.html