我可以使用什么来返回一个布尔变量,该变量将说明我是否可以安全地解析字符串?
1847年将归还真实 18o2将返回false请,没有太复杂......
答案 0 :(得分:2)
您可以使用int.TryParse
int result = 0;
bool success = int.TryParse("123", out result);
如果成功解析成功,那么成功将成立,而其他成功则为假,结果将具有解析int值。
答案 1 :(得分:2)
使用int.TryParse
:
int i;
bool canBeParsed = int.TryParse("1847", out i);
if(canBeParsed)
{
Console.Write("Number is: " + i);
}
答案 2 :(得分:2)
var str = "18o2"
int num = 0;
bool canBeParsed = Int32.TryParse(str, out num);
答案 3 :(得分:1)
您应该查看TryParse方法
答案 4 :(得分:1)
我多年来一直在使用这些扩展方法。也许在开始时有点“复杂”,但它们的使用非常简单。您可以使用类似的模式扩展大多数简单值类型,包括Int16
,Int64
,Boolean
,DateTime
等。
using System;
namespace MyLibrary
{
public static class StringExtensions
{
public static Int32? AsInt32(this string s)
{
Int32 result;
return Int32.TryParse(s, out result) ? result : (Int32?)null;
}
public static bool IsInt32(this string s)
{
return s.AsInt32().HasValue;
}
public static Int32 ToInt32(this string s)
{
return Int32.Parse(s);
}
}
}
要使用这些,只需在MyLibrary
声明的命名空间列表中包含using
。
"1847".IsInt32(); // true
"18o2".IsInt32(); // false
var a = "1847".AsInt32();
a.HasValue; //true
var b = "18o2".AsInt32();
b.HasValue; // false;
"18o2".ToInt32(); // with throw an exception since it can't be parsed.