我有一个带字段的linq2sql类 WeekEnding1 WeekEnding2 WeekEnding3 WeekEnding4
我想使用for循环中的字段编写一些c#。
以此为例:
for(int i=1; i<=4; i++)
{
Msgbox(myClass.WeekEnding + i)
}
我意识到不会工作但是会发生什么?
马尔科姆
答案 0 :(得分:0)
除非你想用反射进入某事,否则这将:
MsgBox(myClass.WeekEnding1);
MsgBox(myClass.WeekEnding2);
MsgBox(myClass.WeekEnding3);
MsgBox(myClass.WeekEnding4);
你可以通过把它放在循环中来做你正在尝试做的事情:
PropertyInfo info myClass.GetType()
.GetProperty("WeekEnding" + i.ToString(),
BindingFlags.Public | BindingFlags.Instance);
MsgBox(info.GetValue(myClass, null));
但我推荐第一种方法!第二种方法必须在每次循环中找到有问题的属性,这会增加相当大的开销。
无论如何,您的基础数据模型听起来非常像它可能需要标准化 - 这是一种常见的难闻气味!