繁体   English   中英

在C#中将字符串计算为属性

[英]evaluate a string as a property in C#

我有一个存储在字符串中的属性...说Object Foo有一个属性Bar ,所以要获取我会调用的Bar属性的值。

Console.Write(foo.Bar);

现在说我把"Bar"存储在一个字符串变量中......

string property = "Bar"

Foo foo = new Foo();

我如何获得foo.Bar的值使用property

我是如何用它在PHP中做的

$property = "Bar";

$foo = new Foo();

echo $foo->{$property};
Foo foo = new Foo();
var barValue = foo.GetType().GetProperty("Bar").GetValue(foo, null)

你会使用反射:

PropertyInfo propertyInfo = foo.GetType().GetProperty(property);
object value = propertyInfo.GetValue(foo, null);

调用中的null是索引属性,而不是你拥有的属性。

你需要使用反射来做到这一点。

这样的事应该照顾你

foo.GetType().GetProperty(property).GetValue(foo, null);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM