# TryParse 是什麼? 在 C# 中,TryParse 方法是一種靜態方法,用於將字串轉換為特定型別的數據。它提供了一種安全的轉換方式,在轉換失敗時不會拋出例外,而是返回一個布林值,告訴你轉換是否成功。 ### TryParse 的基本概念 * 定義:TryParse 方法有多種不同的版本,用於不同的資料型別,例如 int.TryParse、double.TryParse、DateTime.TryParse 等等。每個版本都接受一個字串作為輸入,並返回該型別的輸出。 * 用途:TryParse 主要用於從字串安全地轉換為其他資料型別,例如從用戶輸入的字串轉換為整數或浮點數。這樣可以避免使用 Parse 方法時因格式錯誤而拋出的例外。 --- ### 如何使用 TryParse 1. 基本用法 使用 TryParse 方法可以簡單地將字串轉換為其他資料型別,並檢查轉換是否成功: ``` string input = "123"; int result; bool success = int.TryParse(input, out result); if (success) { Console.WriteLine("轉換成功,結果是: " + result); } else { Console.WriteLine("轉換失敗,輸入不是有效的整數。"); } ``` 在這段代碼中,int.TryParse(input, out result) 試圖將字串 "123" 轉換為整數。如果轉換成功,success 會是 true,並且 result 會被賦值為 123。如果轉換失敗,success 會是 false,result 則不會被賦予有效的數值。 2. 處理不同型別的字串 TryParse 方法不僅限於整數,也可以用於其他型別,例如浮點數和日期: ``` string doubleInput = "3.14"; double doubleResult; if (double.TryParse(doubleInput, out doubleResult)) { Console.WriteLine("轉換成功,結果是: " + doubleResult); } else { Console.WriteLine("轉換失敗,輸入不是有效的浮點數。"); } string dateInput = "2024-08-24"; DateTime dateResult; if (DateTime.TryParse(dateInput, out dateResult)) { Console.WriteLine("轉換成功,結果是: " + dateResult.ToShortDateString()); } else { Console.WriteLine("轉換失敗,輸入不是有效的日期。"); } ``` 在這裡,double.TryParse 和 DateTime.TryParse 分別用來轉換字串為浮點數和日期。這些方法都遵循相同的模式:如果轉換成功,則返回 true 並給相應的輸出變量賦值;否則返回 false。 3. 使用列舉的 TryParse TryParse 方法也可以用於列舉 (enum)。這在處理預定義的一組選項或狀態時非常有用: ``` public enum OrderStatus { Pending, Preparing, Completed, Cancelled } string statusInput = "Preparing"; OrderStatus orderStatus; if (Enum.TryParse(statusInput, out orderStatus)) { Console.WriteLine("轉換成功,訂單狀態是: " + orderStatus); } else { Console.WriteLine("轉換失敗,無效的訂單狀態。"); } ``` 在這個例子中,Enum.TryParse 方法用來將字串 "Preparing" 轉換為 OrderStatus.Preparing。如果轉換成功,orderStatus 變量會被設置為對應的列舉值。 --- ### TryParse 的優點 * 安全性:不會因轉換失敗而拋出例外,避免了程序崩潰的風險。 * 性能:TryParse 是高效的,不會像 Parse 那樣在失敗時引發例外,因此可以用於高頻的轉換操作。 * 簡潔性:使用 TryParse 可以簡化代碼,不需要額外的例外處理邏輯。 --- ### 實際例子 ``` Console.Write("請輸入你的年齡: "); string ageInput = Console.ReadLine(); int age; if (int.TryParse(ageInput, out age) && age > 0) { Console.WriteLine("你的年齡是: " + age); } else { Console.WriteLine("無效的輸入,請輸入一個正整數。"); } ``` 在這個例子中,用戶輸入的字串被 TryParse 方法用來嘗試轉換為整數。如果轉換成功且數字大於 0,則輸出年齡;否則提示無效輸入。這樣的代碼確保了只有有效的整數輸入才會被接受。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.