在我的代码中我有这个:
var wordForm = new WordForm()
{
WordId = word.WordId,
Definition = webWordForm.definition,
SourceId = webWordForm.sourceId,
StatusId = EStatus.Download,
PosId = WordToPosId(webWordForm.partOfSpeech)
};
我宣布了Enum:
public enum EStatus {
NotSet = 0,
New = 1,
Download = 2,
Edited = 3
}
和statusID:
public int StatusId { get; set; } // StatusId
我是否需要将其转换为int,如果是,我该怎么做?
答案 0 :(得分:2)
将Enum
投射为
StatusId = (int)EStatus.Download
答案 1 :(得分:1)
如果声明了枚举类型,则需要显式强制转换。但枚举的默认值为int
每个枚举类型都有一个基础类型,可以是任何类型 除了char之外的整数类型。
这方面的一个例子是:
enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
Days
被声明为byte
,因此在将其分配给int
变量时需要显式强制转换,因为枚举声明为byte
int x = (int)Days.Sun;
但是,需要显式强制转换才能从枚举类型转换为 积分型。
因此,对于您的示例,无需强制转换,因为枚举的基础类型为int
这来自文档enum c#。 请花点时间阅读API。