通用TryParse:探索替代方法
嘗試使用「TryParse」實現通用字串轉換可能會造成由於缺乏“TryParse”作為介面方法而面臨的挑戰。本文探討了克服此障礙的潛在解決方案。
社群建議的一種方法是利用 TypeDescriptor 類別。此類別提供了一種獲取特定類型的轉換器的方法。透過在檢索到的轉換器上呼叫 ConvertFromString 方法,可以將字串輸入轉換為所需的類型。此方法還處理轉換期間可能出現的異常。
public static T Convert<T>(this string input) { try { var converter = TypeDescriptor.GetConverter(typeof(T)); if(converter != null) { // Cast ConvertFromString(string text) : object to (T) return (T)converter.ConvertFromString(input); } return default(T); } catch (NotSupportedException) { return default(T); } }
或者,可以修改程式碼以接受目標類型作為參數,從而消除對泛型的需要。這種方法提供了對轉換過程的更多控制。
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
儘管基於異常的方法可能看起來非常規,但它為執行通用字串轉換的挑戰提供了可行的解決方案。
以上是如何在 C# 中實作通用 TryParse 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!