首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态访问对象属性

动态访问对象属性
EN

Stack Overflow用户
提问于 2011-04-22 01:21:48
回答 4查看 766关注 0票数 0

可以在C#中动态访问对象属性吗?我似乎想不出一个办法。VS似乎每次都对我大喊大叫。

下面是我想要做的事情的一个例子。

所以我们有两个对象,我们称它为car。

代码语言:javascript
运行
复制
Car CAR1 = new Car();
Car CAR2 = new Car();

现在假设我在一个名为myArray的数组中有CAR1和CAR2;

代码语言:javascript
运行
复制
int count = myArray.length.

所以这就是问题所在,我希望能够循环通过数组,能够访问对象属性的。

E.g

代码语言:javascript
运行
复制
for (int i =0; i < count; i++)
{

     myArry[i].GetProperty;
     myArry[i].GetProperty2;
     myArry[i].GetProperty3;

}

然而,上面的VS没有。有没有什么我可以完成的?

EN

Stack Overflow用户

发布于 2011-04-22 01:48:25

你在这里需要的是使用反射,这看起来是如此明显吗?如果不是,我根本就不明白这个问题...

以防……

要获取属性,请使用

代码语言:javascript
运行
复制
   var t = typeof(Car);//get the type "Car"
   var carProperties = t.GetProperties();//get all the public instance properties of the Car type
   var property01 = t.GetProperty("MyPropertyOne");//get a PropertyInfo for the public instance property "MyPropertyOne" of the type "Car"

然后,如果您想要动态获取每个汽车对象的值:

代码语言:javascript
运行
复制
for (int i =0; i < count; i++)  
{        
   var property01 = t.GetProperty("MyPropertyOne");
   var propertyOneValue = property01.GetValue(myArry[i],null);
   Console.WriteLine(propertyOneValue);

   var property02 = t.GetProperty("MyPropertyTwo");
   var propertyTwoValue = property02 .GetValue(myArry[i],null);
   Console.WriteLine(propertyTwoValue);

  //And so on...
}

如果碰巧这就是您要找的,请注意使用反射(至少以这样一种粗鲁的方式)比直接访问对象属性慢得多

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5747576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档