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]);}}}
}

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

  1. php 测试数据整数,PHP中将字符串转化为整数(int) intval() printf() 性能测试

    背景.概述 早在Sql注入横行的前几年,字符串转化为整数就已经被列为每个web程序必备的操作了.web程序将get或post来的id.整数等值强制经过转化函数转化为整数,过滤掉危险字符,尽可能降低系统 ...

  2. 程序员面试题100题第17题——字符串转化为整数

    题目:把输入的字符串转化为整数,如:"-456" 输出456."+456"输出456,"456"输出"456",如果是非 ...

  3. 《剑指offer》-- 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)

    一.栈的压入与弹出序列: 1.题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...

  4. 算法: 把字字符串转化为整数;

    算法: 把字字符串转化为整数: * @问题: 把字符串转化为整数* 题目描述* 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返 ...

  5. 牛客题霸 [将字符串转化为整数] C++题解/答案

    牛客题霸 [将字符串转化为整数] C++题解/答案 题目描述 实现函数 atoi .函数的功能为将字符串转化为整数 提示:仔细思考所有可能的输入情况.这个问题没有给出输入的限制,你需要自己考虑所有可能 ...

  6. 如何将比Long类型更大数值字符串转化为整数

    前几天,需要做一个number类型的数据库主键唯一处理,而且有38位.于是再想使用什么规则控制唯一性.最后决定采用时间,年月日时分秒毫秒,再加随机数. 问题产生了,如何将一个38位的数字字符串转化为整 ...

  7. C#中(int),int.Parse,int.TryParse,Convert.ToInt32四则之间的用法

    今天忽然遇到了 int 转型的问题 同样转int型 结果 用int.Parse() 这种方式转世错的 用Convert.ToInt32的方式转却正确 所以今天特意上网搜了下 在这共享下 有需要的看下吧 ...

  8. c# int.Parse()和 int.TryParse()用法

    先看一段代码 string mess=""; if (!int.TryParse(Request.Form["age"], out age)){mess = & ...

  9. leecode-8字符串转化为整数C版

    1.字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数). 函数 myAtoi( ...

最新文章

  1. Microbiome:利用Nanopore高通量测序技术解析污水处理体系可移动抗性基因组(一作解读)
  2. 发布一个Python小程序:ManHourCalendar
  3. FPGA之道(14)IP核介绍
  4. EWSD命令输入格式解释
  5. Spring bean三种创建方式
  6. CF1139D-Steps to One【期望dp,莫比乌斯反演】
  7. matlab imwrite将图像保存到其他目录
  8. python各种数据类型的常用方法_Python之数据类型的常用方法
  9. ubuntu重命名移动硬盘
  10. 微信WeixinJSBridge API 屏蔽右上角分享等常用方法
  11. Google全球副总裁Vint Cerf:中国物联网发展不得不关注的几大问题
  12. Unity的序列化机制探索
  13. 海洋cms宝塔定时linux,海洋cms怎么设置宝塔自动采集教程
  14. CentOS7 防火墙开放端口配置
  15. Jenkins系列之——第一章 Jenkins下载及安装
  16. DB DBS 和DBMS区别
  17. 概率论02-概率,古典概型
  18. 软考程序员有必要考吗?
  19. 【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)
  20. pyarrow.lib.ArrowInvalid: Casting from timestamp[us] to timestamp[ns] would result in out of bounds

热门文章

  1. python3爬虫(5)百度云盘暴力破解尝试
  2. 实操笔记:为 NSQ 配置监控服务的心路历程
  3. MySQL(二): 表的增删查改
  4. linux中sz和rz的使用,在服务器和本地之间传输数据
  5. 图文结合,白话 Go 的垃圾回收原理
  6. 《超低延时直播白皮书》已发布,推动直播延时降低90%以上
  7. 与WebXR共同创建者Diego Marcos一起探讨沉浸式Web的未来(下)
  8. Google发布TCC 更好的理解视频中事件逻辑
  9. 2019一起走,健康幸运全都有
  10. 教育机构如何提升在线教育技术能力? | 云+社区技术沙龙