gpt4 book ai didi

c# - 具有默认值的通用解析

转载 作者:行者123 更新时间:2023-11-30 22:06:34 24 4
gpt4 key购买 nike

我正在尝试创建一个通用的解析方法,但我被卡住了。
我希望能够接受两种类型,一个类型 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");

关于c# - 具有默认值的通用解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23547637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com