动态命名结构c#

时间:2012-04-30 04:17:13

标签: c# dynamic struct naming

我正在编写的程序有许多结构,这些结构根据许多因素而变化,主要的一点是我无法预测这些结构中有多少会因此程序自己创建它们。

结构看起来像这样;

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

如果没有明确地给它命名,我如何让程序命名这些结构?

理想情况下,会有一个名为structNum的int,它跟踪已经生成了多少结构,然后根据structNum的值命名任何新的结构,但我不确定这是否可以完成,有没有办法或者你能建议一个更好的方法吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

如果你不知道你将要拥有的确切数量的数量,你可以使用List<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;

答案 1 :(得分:0)

你不能在运行时做动态变量名称而不需要反思。

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

List<boardState> boardStates = new List<boardState>();