如何获取特定属性的PropertyInfo?
我想获取特定属性的PropertyInfo。我可以使用:
foreach(PropertyInfo p in typeof(MyObject).GetProperties()){
if ( p.Name == "MyProperty") { return p }
}
但是必须有一种方法可以做类似的事情
typeof(MyProperty) as PropertyInfo
在那儿?还是我坚持进行类型不安全的字符串比较?
干杯。
回答:
您可以使用新的nameof()
操作符是C#6和可用的一部分在Visual Studio
2015年更多信息在这里。
对于您的示例,您将使用:
PropertyInfo result = typeof(MyObject).GetProperty(nameof(MyObject.MyProperty));
编译器将转换nameof(MyObject.MyProperty)
为字符串“ MyProperty”,但由于Visual
Studio,ReSharper等知道如何重构nameof()
值,因此您无需重构就可以重构属性名,从而获得了好处。
以上是 如何获取特定属性的PropertyInfo? 的全部内容, 来源链接: utcz.com/qa/413117.html