[英]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.