gpt4 book ai didi

c# - 在 C# 中,找出类是否具有属性的最佳方法是什么(使用反射)

转载 作者:太空狗 更新时间:2023-10-29 19:51:15 25 4
gpt4 key购买 nike

我有课

 public class Car
{
public string Name {get;set;}
public int Year {get;set;}
}

在单独的代码中,我有一个字段名称作为字符串(让我们使用“年”)作为示例。

我想做这样的事情

   if (Car.HasProperty("Year")) 

这将计算出汽车对象上是否有 Year 字段。这将返回 true。

   if (Car.HasProperty("Model"))

将返回错误。

我看到了遍历属性的代码,但想看看是否有更简洁的方法来确定是否存在单个字段。

最佳答案

这个扩展方法应该可以做到。

static public bool HasProperty(this Type type, string name)
{
return type
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Any(p => p.Name == name);
}

如果您想检查非实例属性、私有(private)属性或其他选项,您可以调整该语句中的 BindingFlags 值。您的使用语法与您提供的不完全相同。相反:

if (typeof(Car).HasProperty("Year"))

关于c# - 在 C# 中,找出类是否具有属性的最佳方法是什么(使用反射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160172/

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