我为什么要使用枚举而不是字符串?

Was*_*ama -1 c# enums

为什么这是"良好的编码实践"?例如,当我制作Rock Paper Scissors控制台游戏时,大多数人建议使用枚举而不是字符串.有什么不同?

Guf*_*ffa 7

这只是使编译器为您工作的方法之一.如果使用字符串,编译器无法帮助您发现值中的拼写错误:

if (move == "rokc") { // just never matches
Run Code Online (Sandbox Code Playgroud)

但如果您使用枚举,编译器只允许您使用有效值:

if (move == Moves.Rokc) { // compilation error
Run Code Online (Sandbox Code Playgroud)