Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态命名结构c#_C#_Dynamic_Struct_Naming - Fatal编程技术网

动态命名结构c#

动态命名结构c#,c#,dynamic,struct,naming,C#,Dynamic,Struct,Naming,我正在编写的程序有许多结构,这些结构取决于许多因素,主要的一点是我无法预测其中有多少结构,所以程序自己创建它们 结构看起来像这样 public struct boardState { public int structid; public char[] state; } 如何让程序命名这些结构而不显式地给它命名 理想情况下,会有一个名为structNum的int来跟踪已经创建了多少个结构,然后根据structNum的值来命名任何新的结构,但我不确

我正在编写的程序有许多结构,这些结构取决于许多因素,主要的一点是我无法预测其中有多少结构,所以程序自己创建它们

结构看起来像这样

public struct boardState
    {
        public int structid;
        public char[] state;
    }
如何让程序命名这些结构而不显式地给它命名

理想情况下,会有一个名为structNum的int来跟踪已经创建了多少个结构,然后根据structNum的值来命名任何新的结构,但我不确定这是否是可以做到的,是否有一种方法或者您可以建议一种更好的方法


谢谢。

如果您不知道您将要拥有的值的确切数量,您可以使用一个
列表,该列表可以容纳任意数量的值。在运行时动态命名不是.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;
var theList=newlist();
//加
添加(新的boardState());
//得到一个
int id=theList[0].structid;
//迭代
foreach(列表中的var s)
//做点什么
int cnt=列表计数;

在运行时,如果不进行大量的反射,就不能使用动态变量名

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

List<boardState> boardStates = new List<boardState>();
List boardStates=新列表();

您对值类型的理解有缺陷。这似乎是最好的解决方案,但我不确定如何做到这一点。我试过这样做;INTX=失败者名单。计数;失败者名单。添加(x);loseList[x].state=sentstate;但这不起作用,我该怎么做呢?