簡體   English   中英

具有默認值的常規解析

[英]Generic Parsing with default value

我正在嘗試創建一個通用的解析方法,但我遇到了麻煩。
我希望能夠采用兩種類型,即類型1的對象和類型2的默認值。
然后,我想嘗試將type1對象解析為type2對象,如果這不起作用,則返回默認值。

顯然,以下代碼無效,無法正常工作。 但這就是我要的。 有誰知道如何在C#中實現這一目標?

public static K TryGenericParse<T, K>(T objectToParse, K defaultValue)
{
    K returnValue;

    if (!K.TryParse(objectToParse, out returnValue))
        returnValue = defaultValue;

    return returnValue;
}

您可以為此使用TypeConverter。 您可以使用TypeDescriptor的靜態方法GetConverter檢索類型轉換。

public static TOuput TryGenericParse<TInput, TOuput>(TInput input)
{
    var converter = TypeDescriptor.GetConverter(typeof(TOuput));
    if (!converter.CanConvertFrom(typeof (TInput)))
        return default(TOuput);
    return (TOuput)converter.ConvertFrom(input);
}

bool bl = TryGenericParse<string, bool>("True");
double dbl = TryGenericParse<string, double>("3.222");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM