当前位置: 首页 > article >正文

windows C#-确定字符串是否表示数值

若要确定字符串是否是指定数值类型的有效表示形式,请使用由所有基元数值类型以及如 DateTime 和 IPAddress 等类型实现的静态 TryParse 方法。 以下示例演示如何确定“108”是否为有效的 int。

int i = 0;
string s = "108";  
bool result = int.TryParse(s, out i); //i now = 108

如果该字符串包含非数字字符,或者数值对于指定的特定类型而言太大或太小,则 TryParse 将返回 false 并将 out 参数设置为零。 否则,它将返回 true 并将 out 参数设置为字符串的数值。

字符串可能仅包含数字字符,但对于你使用的 TryParse 方法的类型仍然无效。 例如,“256”不是 byte 的有效值,但对 int 有效。 “98.6”不是 int 的有效值,但它是有效的 decimal。

示例

以下示例演示如何对 long、byte 和 decimal 值的字符串表示形式使用 TryParse。

string numString = "1287543"; //"1287543.0" will return false for a long
long number1 = 0;
bool canConvert = long.TryParse(numString, out number1);
if (canConvert == true)
Console.WriteLine("number1 now = {0}", number1);
else
Console.WriteLine("numString is not a valid long");

byte number2 = 0;
numString = "255"; // A value of 256 will return false
canConvert = byte.TryParse(numString, out number2);
if (canConvert == true)
Console.WriteLine("number2 now = {0}", number2);
else
Console.WriteLine("numString is not a valid byte");

decimal number3 = 0;
numString = "27.3"; //"27" is also a valid decimal
canConvert = decimal.TryParse(numString, out number3);
if (canConvert == true)
Console.WriteLine("number3 now = {0}", number3);
else
Console.WriteLine("number3 is not a valid decimal");

可靠编程

基元数值类型还实现 Parse 静态方法,如果字符串不是有效数字,该方法将引发异常。 TryParse 通常更高效,因为如果数值无效,它仅返回 false。

.NET 安全性

请务必使用 TryParse 或 Parse 方法验证控件(如文本框和组合框)中的用户输入。

 


http://www.kler.cn/a/468938.html

相关文章:

  • 每日AIGC最新进展(80): 重庆大学提出多角色视频生成方法、Adobe提出大视角变化下的人类视频生成、字节跳动提出快速虚拟头像生成方法
  • 【读书与思考】历史是一个好东西
  • 【通识安全】煤气中毒急救的处置
  • 单片机-独立按键矩阵按键实验
  • 【FlutterDart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100)
  • 【C++】P2550 [AHOI2001] 彩票摇奖
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(资金管控系统)
  • Go语言的 的集合框架(Collections Framework)基础知识
  • 网络安全【C10-2024.10.1】-sql注入基础
  • Oracle DG备库数据文件损坏修复方法(ORA-01578/ORA-01110)
  • 【人工智能数据科学与数据处理】——深入详解大数据与数据库技术之非关系型数据库:MongoDB 的关键概念、核心原理、示例及主要应用
  • 使用Python构建智能医疗诊断系统
  • 解决sublime编译无法输入问题
  • PDF2Audio - 阅读 PDF 的新方式
  • 【工具整理】WIN换MAC机器使用工具整理
  • vue数据请求通用方案:axios的options都有哪些值
  • 《计算机网络A》单选题(详解)
  • 2、蓝牙打印机点灯-GPIO输出控制
  • AdaBoost算法详解与PyTorch实现
  • STM32CUBEMX+PLS_D1000激光测距模块+MT6701角度传感器,获取三角形第三边长度
  • 国内Ubuntu环境Docker部署 SenseVoice
  • Vue动态控制disabled属性
  • 基于单片机的肺功能MVV简单测算
  • Go语言的 的同步与异步编程(Synchronization Asynchronous Programming)基础知识
  • 聊聊 C# 中的委托
  • 数据库系统概论期末复习