首页 > 解决方案 > 与 System.Byte 或 String 等内置类型相比,使用像 Direction 这样的自定义枚举有什么好处?

问题描述

与 System.Byte 或 String 等内置类型相比,使用像 Direction 这样的自定义枚举有什么好处?

孟买大学在 2018 年 5 月的“B.Sc.IT”(带有 C# 的 ASP.NET)课程中提出了这个问题。我没有得到正确的答案。请任何知道这个问题正确答案的人帮助我。

标签: c#asp.net

解决方案


我认为这个问题的意思是枚举具有一组预定义的值,因此编译器会捕获诸如拼写错误之类的东西。例如:

public enum Direction{
Up, Down, Left, Right
}

Direction定义 a是不可能的Diagonal,编译器不会让你。您还可以从枚举中获得智能感知:

在此处输入图像描述

字符串/字节没有明确定义的值列表。模因字符串键入很好地总结了这一点:

当应该使用其他更合适的类型时采用字符​​串的方法参数。在方法调用(例如网络服务)中需要字符串的情况下,该字符串随后会在调用图的其余部分中传递和使用,而无需先将其转换为更合适的内部表示(例如解析它并创建一个枚举) ,那么你在代码库的其余部分都有强类型)。不使用类型化消息等的消息传递。过度字符串类型化的代码通常很难理解,并且 在运行时会引爆编译器通常会发现的错误


推荐阅读