gpt4 book ai didi

c# - 通用将 xAttribute 转换为 bool

转载 作者:行者123 更新时间:2023-12-04 06:04:41 24 4
gpt4 key购买 nike

这是我的代码,除了一种情况外,它完美无缺:当我有 xAttribute 时的 bool , 所以 xAttribute.Value == 1 .在这种情况下,Convert不适用于数字类型。

通常我只会使用 output = (bool) xAttribute ,这有效;但在这个方法中,我有一个泛型类型,所以我想沿着 output = (T) xAttribute 使用该泛型类型。 .我该怎么做?

    public static bool TryGetValueFromAttribute<T>(
this XElement element,
String attName,
out T output,
T defaultValue)
{
var xAttribute = element.Attribute(attName);
if (xAttribute == null)
{
output = defaultValue;
return false;
}

output = (T)Convert.ChangeType(xAttribute.Value, typeof(T));
return true;
}

最佳答案

我只是使用了 XmLConvert。是一个简单的解决方法。它甚至适用于 0 和 1

问候

        public static bool TryGetValueFromAttribute<T>(this XElement element, String attName, out T output, T defaultValue)
{
var xAttribute = element.Attribute(attName);
if (xAttribute == null)
{
output = defaultValue;
return false;
}

if(typeof(T) == typeof(bool))
{
object value = XmlConvert.ToBoolean(xAttribute.Value);
output = (T) value;

return true;
}

output = (T)Convert.ChangeType(xAttribute.Value, typeof(T));
return true;
}

关于c# - 通用将 xAttribute 转换为 bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502849/

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