C# 我需要强制转换和枚举吗?我该怎么做?

C# 我需要强制转换和枚举吗?我该怎么做?,c#,C#,在我的代码中,我有: var wordForm = new WordForm() { WordId = word.WordId, Definition = webWordForm.definition, SourceId = webWordForm.sourceId, StatusId = EStatus.Download, PosId = Wo

在我的代码中,我有:

        var wordForm = new WordForm()
        {
            WordId = word.WordId,
            Definition = webWordForm.definition,
            SourceId = webWordForm.sourceId,
            StatusId = EStatus.Download,
            PosId = WordToPosId(webWordForm.partOfSpeech)
        };
我声明枚举:

public enum EStatus {
    NotSet   = 0,
    New      = 1,
    Download = 2,
    Edited = 3
}
和状态ID:

public int StatusId { get; set; } // StatusId

我需要将其转换为int吗?如果需要,如何转换?

枚举转换为

StatusId = (int)EStatus.Download

Enum
强制转换为

StatusId = (int)EStatus.Download

如果声明了枚举类型,则需要显式强制转换。但是enum的默认值是
int

每个枚举类型都有一个基础类型,可以是任何类型 除char之外的整型

这方面的一个例子是:

enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
Days
声明为
byte
,因此在将其分配给
int
变量时需要显式强制转换,因为枚举声明为
byte

int x = (int)Days.Sun;
但是,从枚举类型转换为枚举类型需要显式强制转换 整型

因此,对于您的示例,不需要强制转换它,因为枚举的基础类型是
int

这是来自文档的。
请花时间阅读API。

如果声明了枚举类型,则需要显式强制转换。但是enum的默认值是
int

每个枚举类型都有一个基础类型,可以是任何类型 除char之外的整型

这方面的一个例子是:

enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
Days
声明为
byte
,因此在将其分配给
int
变量时需要显式强制转换,因为枚举声明为
byte

int x = (int)Days.Sun;
但是,从枚举类型转换为枚举类型需要显式强制转换 整型

因此,对于您的示例,不需要强制转换它,因为枚举的基础类型是
int

这是来自文档的。
请花点时间阅读API。

(int)EStatus.Download或Convert.ToInt32(EStatus.Download)字格式.StatusId的类型是什么?可能重复(int)EStatus.Download或Convert.ToInt32(EStatus.Download)字格式.StatusId的类型是什么,给她一些更像Enum to int casting如何工作的东西。枚举在结构下基本上是int值。等等,不要用勺子喂她,而是给她一些更像Enum to int casting如何工作的东西。枚举在结构下基本上是int值。等