【发布时间】:2015-02-20 07:53:37
【问题描述】:
我发现了this 问题,但它与 XML 文件一起使用,所以我不太明白发生了什么。
我想要做的是让我的对象列表填充到我的 for 循环中。现在我有这个:
for (int i = 0; i < dogs.Length; i++)
{
dogs[i] = new Dog();
}
dogs[0].PictureBox = picDog0;
dogs[1].PictureBox = picDog1;
dogs[2].PictureBox = picDog2;
dogs[3].PictureBox = picDog3;
我想做这样的事情:
for (int i = 0; i < dogs.Length; i++)
{
dogs[i] = new Dog();
dogs[i].PictureBox = StringToVariable("picDog" + i);
}
PictureBox 是一个属性字段,以防万一。
StringToVariable() 是我不知道的事情。我什至不知道它会被称为搜索它。
【问题讨论】:
-
你为什么不使用
picDogs的数组而不是4 个变量呢?那么您的代码将是dogs[i].PictureBox = picDog[i]; -
你可以使用反射,但我认为这对你来说不是很好的解决方案
-
谢谢大家。今晚我会试试这两个。 @YuriDorokhov 我将如何使用反射。你能给我看一些示例代码吗?
-
请不要在这种情况下使用
Reflection。这里有很多陷阱,例如如果在代码中重命名变量picDog会发生什么?在使用变量的任何地方都会出现compile time错误,但Reflection部分将在runtime处失败,这更糟糕,更难追踪。 -
我听说过属性。我听说过领域。但我从未听说过“财产领域”。你的意思是什么?