共用方式為


如何判斷字串是否代表數值(C# 程式設計手冊)

若要判斷字串是否為指定數值型別的有效表示,請使用由所有基本數值類型以及類似DateTimeIPAddress這些型別實作的靜態TryParse方法。 下列範例示範如何判斷 「108」 是否為有效的 int

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

如果字串包含非數值字元,或者數值對於您指定的特定類型來說過大或過小,則 TryParse 傳回 false,並將 out 參數設定為零。 否則,它會傳回 true,並將 out 參數設定為字串的數值。

備註

字串可能僅包含數字字符,但對於您使用的方法所屬類型而言,仍然可能無效。 例如,“256” 不是 的有效值 byte ,但它對 int有效。 “98.6” 不是 int 的有效值,但它是 decimal 的有效值。

範例

下列範例示範如何將TryParselongbytedecimal值的字串表示搭配使用。


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 = {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 = {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 = {number3}");
else
Console.WriteLine("number3 is not a valid decimal");

健全的程式設計

基本數值類型也支援 Parse 這個靜態方法,當字串不是有效的數值時,將拋出例外狀況。 TryParse 通常更有效率,因為它只會在數位無效時傳回 false。

.NET 安全性

一律使用 TryParseParse 方法來驗證文本框和下拉式方塊等控件的用戶輸入。

另請參閱