java枚举详解 如何遍历枚举类型的对象,并获取枚举类型长度?
如何遍历枚举类型的对象,并获取枚举类型长度?publicenumtestenum{aa,bb,cc,dd}foreach(中的testenum项)枚举.GetValue(typeof(testenum
如何遍历枚举类型的对象,并获取枚举类型长度?
publicenumtestenum{aa,bb,cc,dd}foreach(中的testenum项)枚举.GetValue(typeof(testenum)){}枚举.GetValue(typeof(枚举的名称))获取指定枚举的枚举值。枚举.GetNames(typeof(枚举名称))获取指定枚举的枚举名称。
enum的用法和使用方法?
之所以称为枚举类型,是因为命名常量被枚举或列为数据类型定义的一部分。下面是枚举类型声明的一个示例:
enum lotster{Tom,Sharon,bill,Teresa,John}
此语句将创建一个名为lotster的数据类型。因为单词enum是一个c关键字,所以它必须是小写的。值得注意的是,数据类型本身的名称以大写字母开头。虽然这不是必需的,但是大多数程序员都会使用大写字母。
与花名册数据类型关联的命名整数常量称为枚举数。花名册数据类型的变量可能只是与这些枚举数关联的值之一,但它们的值是什么?
默认情况下,编译器将第一个枚举数设置为0,下一个设置为1,依此类推。在上面的例子中,Tom的值是0,Sharon的值是1,依此类推。最后一个枚举数John的值是4。
为什么很多程序员不用switch,而是大量的if……else if?
答:主要是因为交换机不适合实际复杂的业务系统需求。业务在不断变化和迭代。一旦需求发生变化,条件的复杂性就很高,交换机无法处理。
开关何时合适?它的场景是基于单个变量的值(例如枚举),这比if条件更可读。
从上面的场景来看,它太有限了。让我简单地谈谈它的一些缺点:
1。真正的业务场景非常复杂,条件也不单一。一旦需求发生变化,维护代码就会崩溃。
2. 开关经常忘记写中断。据估计,很多人都忘了粗心地写。如果你看看Google的代码规范,你会发现Google对switch有很多要求。
事实上,有些人仍然使用交换机,这部分是由于历史原因。然而,随着科学技术的发展,原有的设计和设计都相对滞后。
某些编程语言(如python)没有开关语法。当然,一些新的语言golang和kotlin仍然是继承的,但是switch被打包了,被误解的语法被删除了,这使得switch更加灵活。没有包装很难使用。
通过上述缺点,即if语句更加灵活,并且根据业务逻辑条件编写,可维护性高。同时,只要代码质量高,可读性就会更高。
实际业务非常复杂,我不建议您必须使用大量的if,相反,它应该尽快返回以减少嵌套,从而增加可读性并降低维护成本。