使用'TryParse' 擴展通用類型驗證
為了驗證給定字串是否符合預定義類型,嘗試正在利用“TryParse”開發通用擴充。然而,這項工作遇到了編譯障礙,因為「TryParse」仍未解決。
這個問題的癥結在於「TryParse」沒有封裝在任何可辨識的介面中。因此,出現了這種實現的可行性問題。
一個潛在的解決方案涉及利用 TypeDescriptor 類,這是一種專門為此目的而設計的機制。透過合併此類,可以採用更強大的方法:
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); } }
這種更新的方法具有多個優點:
最終,這個修訂後的解決方案有效地解決了最初的挑戰,提供了一種方法來確定給定輸入字串針對預定義類型的有效性。
以上是`TryParse` 可以用於 C# 中的泛型類型驗證嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!