【发布时间】:2011-07-19 16:01:17
【问题描述】:
假设我有一个结构,其中包含一百多个名称复杂的元素。我正在使用 ref 将描述的结构类型的结构传递给函数,如下所示:
void Foo(ref mystruct a)
{
"I want to modify members or fields of struct a, like this:
a[0] = 10;
a[100] = 11;"
}
谢谢!
【问题讨论】:
-
为什么要拥有一个包含 100 个字段的结构?
-
您可以使用反射来确定条目,但不要这样做。这是错误的。 @Yossarian 是对的。
-
A:可变结构是邪恶的 B:结构的大小应该合理(
ref是一种变通的解决方法)。除非你有一个非常专业的场景,否则这不是设计它的好方法...... -
它不是 100,它正好是 26。我只是为了表明 Struct 有很多字段。
-
我很确定这是一些遗留 C 代码的移植(正如你的另一个问题是。)移植的一部分是意识到什么时候做得不好并修复它。在这种情况下,数组比保留
struct更有意义。正如 SLaks 在上一个问题中建议的那样,如果您觉得需要,将数组包装在一个具有适当属性 getter/setter 的类中。