C#转整型的三种方式的区别以及效率对比

C#转整型的三种方式的区别

三种转换方式:
1. 强制转换(int)
2. Convert.ToInt32()
3. int.Parse(string) 或 int.TryParse(string, out int)

三种类型转整型:
a.浮点型转整型

在这里插入图片描述
由报错的提示可知int.Parse() 或 int.TryParse(string, out int)这两种方法只能将字符串数字转为整型,不能将浮点数转为整型。
在这里插入图片描述
由上图结果可知,(int)强转 截取整数了部分,Convert.ToInt32()遵从四舍五入的原则


b.字符串数字转整型

在这里插入图片描述
由报错可知,(int)强转不能将字符串数字转为整型
在这里插入图片描述
Convert.ToInt32(),int.Parse(string) 或 int.TryParse(string, out int)都可以将字符串数字转为整型


c. 字符转整型

在这里插入图片描述
由报错的提示可知int.Parse() 或 int.TryParse(string, out int)这两种方法不能将字符转为整型
在这里插入图片描述
(int)强转、Convert.ToInt32可以将字符转为整型


总结下:
可以浮点数转整数:(int)强转 截取整数部分,Convert.ToInt32()遵从四舍五入
可以字符转整型:(int)强转,Convert.ToInt32()
可以字符串数字转整型:Convert.ToInt32(),int.Parse(string) , int.TryParse(string, out int)


C#转整型三种方式的效率对比

1. (int)强转和Convert.ToInt32的对比,因为两者都能字符型转整型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为考虑到两种方法在不同的平台上可能效率会有不同,所以分别在Unity引擎上和VS2017编辑器上测试。
(测试的时候出现了一点小插曲,就是你会发现这个代码其实写的有问题,就是循环里面变量i的值会被改变,造成无限循环了,结果处于卡死的状态,不过这个不会影响测试的最终结果,后来也改正了代码,测试得出的结论是一样的)。由上图结果可得出结论:(int)强转效率高于Convert.ToInt32


2. int.Parse(string) , int.TryParse(string, out int),Convert.ToInt32()效率对比,因为三者都能将字符串数字转为整型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由上图的结果得出结论:
在Unity引擎上效率由高到低:int.Parse(string) , int.TryParse(string, out int),Convert.ToInt32()
在VS控制台山效率由高到低:Convert.ToInt32(),int.Parse(string) , int.TryParse(string, out int)
测试结果有点不同,可能与Unity的测试环境与引擎有关吧。


由于上次测试的时候程序写的有点问题,遍历的次数可能太少了,数据对比可能有偶然性,于是又测试对比了下,把遍历次数加到1000和10000,得出的结果对比得出的结论仍然与上次相同。

最后再总结:

浮点型转整型

  1. (int)强转 截取整数部分,Convert.ToInt32()遵从四舍五入原则。
  2. 按需求选用。

字符转整型

  1. (int)强转,Convert.ToInt32()。
  2. 在Unity中测试和VS控制台测试得出的结论都一致,(int)强转效率高于Convert.ToInt32。

整型数字字符串转整型

  1. Convert.ToInt32(),int.Parse(string) 或 int.TryParse(string, out int)。
  2. 在Unity中测试和VS控制台测试得出的结论有点不一样,
    Unity中效率由高到低:
    int.Parse(string) , int.TryParse(string, out int),Convert.ToInt32();
    在VS控制台中效率由高到低:
    Convert.ToInt32(),int.Parse(string) , int.TryParse(string, out int)。
  3. 如果大多数在Unity中使用,在整型数字字符串转整型的时候,在int.Parse(string) , int.TryParse(string, out int)两种中按需求选择吧。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值