gpt4 book ai didi

c# - GetValue(...) - 错误在运行时被忽略

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:55 29 4
gpt4 key购买 nike

尝试创建获取任何枚举属性值的枚举扩展方法时,我遇到了以下情况:

编译以下代码时,VS 2010 显示错误:“GetValue”方法没有重载需要 1 个参数。注释代码和使用监视工具时 - 该行返回值(见附图)。

知道为什么吗?

 public static class EnumExtensions
{
public static IEnumerable<object> GetAttributeValue(this Enum enm, Type attribute, string attributeName)
{

FieldInfo fi = enm.GetType().GetField(enm.ToString());

var fiAtts = fi.GetCustomAttributes(attribute, false);

if (fiAtts.Length == 0)
return null;


foreach (var att in fiAtts)
{
//VS2010 throws an error: No overload for method 'GetValue' takes 1 argument
//yield ==> Ignore
return att.GetType().GetProperty(attributeName).GetValue(att);
}
}
}

enter image description here

最佳答案

显然,对于PropertyInfo,在.Net 4 中没有只接受一个参数作为参数的GetValue 方法。类

我现在可以看到监 window 口返回某些东西的唯一可能性是,在您的代码中的某处,您有一个 PropertyInfo 类型的 GetValue 扩展方法,它只需要一个参数作为输入。它在您的代码中可能是未知的,因为未指定 using [PropertyInfoExtensionNamespace]。也许由于未知(或错误)原因,它以调试器而闻名。

参见 this blog post有关扩展方法 + 调试器错误行为的讨论。

关于c# - GetValue(...) - 错误在运行时被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11543823/

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