如何在Microsoft Visual Studio C#中创建要用枚举填充的常量数组?

如何在Microsoft Visual Studio C#中创建要用枚举填充的常量数组?,c#,arrays,visual-studio,structure,enumeration,C#,Arrays,Visual Studio,Structure,Enumeration,这是我的代码: //first enumeration declaration public enum Te1 { e1_e1 = 5, e1_e2 = 19 } //second enumeration declaration public enum Te2 { e2_e1 = 6, e2_e2 = 7, } //structure for holding both enumeration values public struct Tu1 { Te1 e1

这是我的代码:

//first enumeration declaration
public enum Te1 {  
  e1_e1  = 5,
  e1_e2 = 19
}  

//second enumeration declaration
public enum Te2 {
  e2_e1 = 6,
  e2_e2 = 7,
}  

//structure for holding both enumeration values
public struct Tu1 {
  Te1 e1;
  Te2 e2;
}  

//create and fill an array of structures with enumeration values (this codeline generates an error)
var u1 = new Tu1[] {
  { Te1.e1_e1, Te2.e2_e1 }
};  
使用枚举值创建并填充结构数组(此代码行生成错误) 我哪里出错了

提前感谢,,
Henk

我认为您的strucct初始化语法不正确。而不是

  { Te1.e1_e1, Te2.e2_e1 }
};
试一试


首先,初始化struct对象时,需要使用关键字
new
,并指定字段或属性名称

new Tu1{ e1 = Te1.e1_e1, e2 = Te2.e2_e1 }
此外,在您定义的结构中,
e1
e2
都是私有字段。不能直接为它们赋值

因此,尝试为字段添加访问修饰符
public
,或者定义相应的属性(这样会更好)

您还可以如下所示为结构定义构造函数

public struct Tu1
{
    Te1 e1;
    Te2 e2;
    public Tu1(Te1 te1, Te2 te2)
    {
        e1 = te1;
        e2 = te2;
    }
}
var u1 = new Tu1[] {
    new Tu1(Te1.e1_e1, Te2.e2_e1)
};
并按如下所示创建数组

public struct Tu1
{
    Te1 e1;
    Te2 e2;
    public Tu1(Te1 te1, Te2 te2)
    {
        e1 = te1;
        e2 = te2;
    }
}
var u1 = new Tu1[] {
    new Tu1(Te1.e1_e1, Te2.e2_e1)
};

Te2.e2_e1
a
Tu1
?是
varu1=newtu1{{{e1=Te1.e1_e1,e2=Te2.e2_e1}