gpt4 book ai didi

c# - 让 AppSettingsReader 询问值的类型并返回一个非特定类型的对象有什么意义?

转载 作者:行者123 更新时间:2023-11-30 16:06:56 26 4
gpt4 key购买 nike

我不明白为什么框架暴露 AppSettingsReader.GetValue ,签名是:

public object GetValue(string key, Type type);

询问设置值的类型,并返回一个非转换的object ?!询问类型而不公开泛型类型转换值有什么意义?!

我想知道为什么他们没有“完成”这项工作。

如果我们已经在谈论完成这项工作,也许下面应该是我们想要的:

public T GetValue<T>(string key, T defaultValue = default(T)) where T : class
{
object value = _appSettingsReader.GetValue(key, typeof(T));
T castedValue;
try
{
castedValue = (T) Convert.ChangeType(value, typeof(T));
}
catch (Exception)
{
castedValue = defaultValue;
}

return castedValue;
}

最佳答案

What's the point in asking for the type and not exposing a generic type-casted value ?!

嗯,我猜他们在泛型时代之前就写了那段代码。自 .NET 1.1 以来就存在此方法,因此绝对是前泛型。

询问类型的关键在于,在该方法的背后,它确实将值转换为正确的类型。它只是不暴露于外界。它必须知道如何读取 XML 并将其转换为特定类型。

当然,他们可以(也许应该)重写该代码,使其使用泛型。这将使我们所有人受益。

关于c# - 让 AppSettingsReader 询问值的类型并返回一个非特定类型的对象有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31517567/

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