700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C# int.Parse()与int.TryParse():将字符串转化为整数

C# int.Parse()与int.TryParse():将字符串转化为整数

时间:2023-03-03 23:56:23

相关推荐

C# int.Parse()与int.TryParse():将字符串转化为整数

int.TryParse()的用法

官方定义

// 摘要://将数字的字符串表示形式转换为它的等效 32 位有符号整数。 一个指示转换是否成功的返回值。//// 参数:// s://包含要转换的数字的字符串。//// result://当此方法返回时,如果转换成功,则包含与 s 中所包含的数字等效的 32 位无符号整数值;如果转换失败,则包含零。 如果 s 参数为 null 或 System.String.Empty、格式不正确,或者表示的数字小于//System.Int32.MinValue 或大于 System.Int32.MaxValue,则转换失败。 此参数未经初始化即进行传递;最初在 result//中提供的任何值都会被覆盖。//// 返回结果://如果 true 成功转换,则为 s;否则为 false。

可以自己写函数IntTryParse实现类似的效果

笔记

int i = -1;

bool b = int.TryParse(null, out i);

执行完毕后,b等于false,i等于0,而不是等于-1,切记。

int i = -1;

bool b = int.TryParse(“123”, out i);

执行完毕后,b等于true,i等于123;

1、(int)是一种类型转换;当我们觟nt类型到long,float,double,decimal类型,可以使用隐式转换,但是当我们从long类型到int类型就需要使用显式转换,否则会产生编译错误。

2、int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。

如果字符串为空,则抛出ArgumentNullException异常;

如果字符串内容不是数字,则抛出FormatException异常;

如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;

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

最后一个参数为输出值,如果转换失败,输出值为 0,如果转换成功,输出值为转换后的int值

4、Convert.ToInt32()是一种类容转换;但它不限于将字符串转为int类型,还可以是其它类型的参数;

比较:Convert.ToInt32 参数为 null 时,返回 0; int.Parse 参数为 null 时,抛出异常。Convert.ToInt32 参数为 “” 时,抛出异常; int.Parse 参数为 “” 时,抛出异常。 Convert.ToInt32 可以转换的类型较多; int.Parse 只能转换数字类型的字符串。int.TryParse相比较于以上两种方法则更加安全,不会报错,在某些情况下好用很多!

心得

个人感觉,用传参达到返回值的目的,这样的操作原理,尤其是out这个词类似于C++中的引用符号&

另外,可以使用ref

一个例子↓

代码

使用了int.TryParse

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp1{class Program{static void Main(string[] args){//输入数字,直到转换失败string str;int[] num = new int[100];int i;for (i = 0; i < 100; i++){//输入str = Console.ReadLine();//转换bool check;check = int.TryParse(str, out num[i]);//异常则退出循环if (check == false){Console.WriteLine("检测到输入异常值,已退出循环。你的输入如下:");break;}}//输出int total = i;for (int j = 0; j < total; j++){Console.Write("{0} ", num[j]);}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。