使用 TryParse進行通用字串轉換
在嘗試建立一個通用擴展,利用「TryParse」根據特定類型驗證字串,遇到以下程式碼:
public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); }
由於無法執行此程式碼,因此無法編譯解析“TryParse”符號。 “TryParse”不是任何介面的一部分,這就提出了此功能是否可以實現的問題。
使用TypeDescriptor 的替代解決方案
一種方法是使用TypeDescriptor 類別:
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
此方法明確傳遞目標類型,避免使用泛型並允許運行時類型轉換。 TypeDescriptor 提供將字串轉換為各種類型的功能,使您能夠根據所需類型驗證字串。
以上是使用TryParse可以實作通用字串驗證嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!