首頁 >後端開發 >C++ >`TryParse` 可以用於 C# 中的泛型類型驗證嗎?

`TryParse` 可以用於 C# 中的泛型類型驗證嗎?

Linda Hamilton
Linda Hamilton原創
2025-01-03 16:28:38127瀏覽

Can `TryParse` Be Used for Generic Type Validation in C#?

使用'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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn