c# - 与 System.Byte 或 String 等内置类型相比,使用像 Direction 这样的自定义枚举有什么好处?
问题描述
与 System.Byte 或 String 等内置类型相比,使用像 Direction 这样的自定义枚举有什么好处?
孟买大学在 2018 年 5 月的“B.Sc.IT”(带有 C# 的 ASP.NET)课程中提出了这个问题。我没有得到正确的答案。请任何知道这个问题正确答案的人帮助我。
解决方案
我认为这个问题的意思是枚举具有一组预定义的值,因此编译器会捕获诸如拼写错误之类的东西。例如:
public enum Direction{
Up, Down, Left, Right
}
Direction
定义 a是不可能的Diagonal
,编译器不会让你。您还可以从枚举中获得智能感知:
字符串/字节没有明确定义的值列表。模因字符串键入很好地总结了这一点:
当应该使用其他更合适的类型时采用字符串的方法参数。在方法调用(例如网络服务)中需要字符串的情况下,该字符串随后会在调用图的其余部分中传递和使用,而无需先将其转换为更合适的内部表示(例如解析它并创建一个枚举) ,那么你在代码库的其余部分都有强类型)。不使用类型化消息等的消息传递。过度字符串类型化的代码通常很难理解,并且 在运行时会引爆编译器通常会发现的错误。
推荐阅读
- c# - Xamarin 使选项卡扩展全宽
- c# - 如何将 CSS 添加到 XMLWorker 解析器?
- java - 强制缓存已缓存的数据集 spark
- r - CRAN 要求将 \dontrun{} 替换为 \donttest{} 后 R 包中的问题
- javascript - 如果两个对象数组中的 id 匹配,则从某个键值对返回所需的值
- flutter - Flutter for 循环包含 .then 语句完成前半部分然后后半部分
- python - 有没有办法使用 python 将.csv 之类的文件发送/粘贴到网站
- java - 无法解析 org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:unknown
- perl - StrawberryPerl 5.32.0.1 & Tk CPAN 错误:未定义对 MAX 的引用
- python - 如何将这两个数据框连接在一起以使它们重叠并适合日期?