提问人:Massimo Costanzo 提问时间:10/25/2023 最后编辑:jdwengMassimo Costanzo 更新时间:10/25/2023 访问量:68
如何在嵌套结构中设置数组的维度
How to set dimension of arrays inside nested structs
问:
我必须使用一个包含结构的结构的结构,该结构包含结构的数组。 当我尝试修复数组的维度时,编译器(csc.exe)返回一个错误:
区块报价 错误 CS0426 类型“MyApp.strMAIN”中不存在类型名称“strInner_1”
这是我的代码:
public class MyApp
{
public struct strInner_2
{
public int Num;
}
public struct strInner_1
{
public string month_name;
public strInner_2[] number;
public int days_num;
}
public struct strMAIN
{
public strInner_1 Main_1;
public strInner_1 Main_2;
}
static void Main()
{
strMAIN.strInner_1.Main_1.number[] Numbers_1 = new strMAIN.strInner_1.Main_1.number[12];
strMAIN.strInner_1.Main_2.number[] Numbers_2 = new strMAIN.strInner_1.Main_2.number[12];
}
}
我做错了什么?
谢谢
答:
1赞
cyberjujutsu
10/25/2023
#1
您似乎正在尝试在 strMAIN 结构内的 strInner_1 结构中定义 strInner_2 结构的数组。但是,您尝试访问这些结构和创建数组的方式不正确。在 C# 中,不指定结构名称和数组声明。相反,您应该访问结构和数组
public class MyApp
{
public struct strInner_2
{
public int Num;
}
public struct strInner_1
{
public string month_name;
public strInner_2[] number;
public int days_num;
}
public struct strMAIN
{
public strInner_1 Main_1;
public strInner_1 Main_2;
}
static void Main()
{
strMAIN myStruct = new strMAIN();
myStruct.Main_1.number = new strInner_2[12];
myStruct.Main_2.number = new strInner_2[12];
// You can now access the arrays like this:
myStruct.Main_1.number[0].Num = 42;
myStruct.Main_2.number[0].Num = 24;
}
}
评论