如何在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
aTu1
?是varu1=newtu1{{{e1=Te1.e1_e1,e2=Te2.e2_e1}你想怎么做?嗨,凯尔·王解决了我的问题。我上一次编程C#2年前,忘记了结构可能有一个构造函数。。。谢谢大家。@HenkvW如果这个回答对你有帮助,也许你可以把它标记为答案。