0

我正在编写的程序有许多结构,这些结构因许多因素而异,主要是我无法预测这些结构中有多少,所以程序自己创建它们。

结构看起来像这样;

public struct boardState
    {
        public int structid;
        public char[] state;
    }

我怎样才能让程序在没有我明确给它命名的情况下命名这些结构?

理想情况下,将有一个名为 structNum 的 int 跟踪已创建的结构数量,然后将根据 structNum 的值命名任何新结构,但我不确定这是否可以完成,是否存在一种方法还是您能提出更好的方法?

谢谢你。

4

2 回答 2

1

如果您不知道要获得的值的确切数量,则可以使用 aList<boardState>可以容纳任意长数量的值。在运行时动态命名不是 .NET 的特性。编译后没有真正的名字。

var theList = new List<boardState>();
// add
theList.Add(new new boardState());
// get one
int id = theList[0].structid;
// iterate
foreach(var s in theList)
    // do something
int cnt = theList.Count;
于 2012-04-30T04:20:57.193 回答
0

你不能在运行时做动态变量名,而不需要大量的反射。

最简单的解决方案是将结构保存在一个List或类似的集合中:

List<boardState> boardStates = new List<boardState>();
于 2012-04-30T04:21:27.190 回答