我将枚举定义为短片,但是当将其中一个元素作为参数传递时,计算机拒绝接受枚举已经一个短片并让我重新制作它。我的问题是为什么?
即。枚举设置:短{val1,val2,val3};
public void function (short param)
{
// ...
}
function(settings.val1); // will not compile
function((short)settings.val1); // will parse.
答案 0 :(得分:1)
因为settings.val1的设置类型不短,并且不支持隐式转换。 Enum:short只是说它的字段存储在短型存储区中。枚举项的默认类型是Int32
答案 1 :(得分:1)
您有一个名为settings
的枚举类型。该枚举的支持类型恰好是short
,但就编译器而言,类型仍为settings
。
由于settings
没有隐式强制转换为short
,因此需要明确的强制转换。
答案 2 :(得分:1)
将方法调用修改为public void function (settings param) { }
答案 3 :(得分:1)
在此上下文中,:
不是继承运算符。相反,它只定义了支持数据类型。不幸的是它看起来像是继承。