gpt4 book ai didi

C# 通用返回值

转载 作者:行者123 更新时间:2023-11-30 14:14:21 28 4
gpt4 key购买 nike

我正在做一个配置提供者,在我的服务层我有这个:

public string GetValue(string key)
{
return _ctx.Configurations.SingleOrDefault(q => q.Key == key).Value;
}

但是我怎样才能得到它原始类型的值,我想这样做:

public T GetValue<T>(string key)
{
return (T)(object)_ctx.Configurations.Single(q => q.Key == key).Value;
}

正如此处指出的:https://stackoverflow.com/a/9420236/544283 ,这将是泛型的滥用...我可以接受。

因为我知道类型,所以我可以将值强制转换到方法外部,并在方法内部将其视为字符串,但我想避免这种情况。

最佳答案

只要您确定转换不会失败,您就可以使用:

var value = _ctx.Configurations.Single(q => q.Key == key).Value;
return (T)Convert.ChangeType(value, typeof(T));

如果你想安全起见,你应该做一些额外的检查以确保该值实际上可以转换为所需的类型。

关于C# 通用返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359935/

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