我需要演员和Enum吗?我该怎么做?

时间:2016-06-12 04:17:37

标签: c#

在我的代码中我有这个:

        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,如果是,我该怎么做?

2 个答案:

答案 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。