我的类中有一个类型为uint
的枚举,另一个带有uint参数的函数。但是当我用枚举作为参数调用该函数(setColor
)时,我得到错误:
Error 3 Argument 1: cannot convert from 'Test.Form1.colors' to 'uint'
这是我的班级:
namespace Test{
public partial class Form1 : Form
{
enum color : uint {off, red, yellow};
setColor(uint color){
...
}
MyFunction()
{
setColor(color.red);
}
}
}
答案 0 :(得分:2)
您应该阅读documentation
基础类型指定为每个枚举器分配多少存储空间。但是,从枚举类型转换为整数类型需要显式强制转换。例如,以下语句通过使用强制转换从枚举转换为枚举器将枚举器Sun赋予int类型的变量。中间体
int x = (int)Days.Sun;
答案 1 :(得分:1)
转换为uint并使用{}定义枚举。
public partial class Form1 : Form
{
enum color : uint {off, red, yellow};
void setColor(uint color){
}
void MyFunction()
{
setColor((uint)color.red);
}
}
答案 2 :(得分:1)
enum mycolor : uint
{
off,
red,
yellow
}
void setColor(mycolor color ){ }
void MyFunction()
{
setColor(mycolor.red);
}
答案 3 :(得分:0)
这应该适合你。
public partial class Form1: Form
{
enum color : uint {off, red, yellow};
void setColor(uint color){
}
void MyFunction()
{
setColor((uint)(color.red));
}
}