若要判斷字串是否為指定數值型別的有效表示,請使用由所有基本數值類型以及類似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 參數設定為字串的數值。
備註
字串可能僅包含數字字符,但對於您使用的方法所屬類型而言,仍然可能無效。 例如,“256” 不是 的有效值 byte ,但它對 int有效。 “98.6” 不是 int 的有效值,但它是 decimal 的有效值。
範例
下列範例示範如何將TryParse與long、byte和decimal值的字串表示搭配使用。
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 安全性
一律使用 TryParse 或 Parse 方法來驗證文本框和下拉式方塊等控件的用戶輸入。