首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏浮躁的喧嚣

    swift 枚举(枚举关联枚举原始、递归枚举等)

    Swift 枚举可以用来存储任意类型的关联 声明存储不同类型关联枚举成员(这个定义不提供任何Int或String类型的关联) 一个成员是(Int,Int,Int)类型关联的num 一个成员是 原始是在定义枚举时被预先填充的。对于一个特定的枚举成员,它的原始始终不变。关联是创建一个基于枚举成员的常量或变量时才设置的枚举成员的关联可以变化。 原始的隐式赋值 当使用整数作为枚举成员的原始时,隐式赋值的依次递增1 enum Season:Int { case spring = 1 case summer case autumn case winter } 当使用字符串作为枚举类型的原始时,每个枚举成员的隐式原始为该枚举成员的名称 enum Season:String { case spring ) 使用原始初始化枚举实例 可以通过rawValue初始化一个枚举成员,返回则是枚举成员或nil 可以通过这个来判断这个新枚举成员是否在枚举中 enum Season:Int { case

    1K10编辑于 2023-11-22
  • 来自专栏全栈程序员必看

    怎么获取枚举_枚举类型吗

    最近在做一个学校的系统,其中用到一些枚举,可是在显示下拉列表时要绑定枚举的描述及其枚举时就只一个一个的默认设死,这样不灵活。有没有其快捷方法? 搜了下百度很多相关资料有了些许眉目,代码如下 1.首先定义枚举,这里要做显示学生状态的列表,如下所示 1 ///

    2 /// 学生状态 3 /// 4 2, 23 24 /// 25 /// 休学 26 /// 27 [Description("休学")] 28 Suspend = 3 29 } 2.循环取枚举属性 ,Enum.GetNames这个方法是获取枚举定义的属性(如Study),Enum.GetValues这个方法是获取枚举定义的属性(如0) 1 foreach (var em in Enum.GetNames

    5.8K30编辑于 2022-09-20
  • 来自专栏IT开发技术与工作效率

    带描述枚举获取枚举实例

    import java.util.LinkedHashMap; /** * 是否 * 1-是 0-否 *
    表.字段 *
    table.column */ public enum YesOrNoEnum { /** 1-是 */ YES("1", "是"), /** 0-否 */ NO("0", "否"), ; public final String value; public final String desc;

    1.9K30发布于 2020-06-02
  • 来自专栏C/C++

    CC++获取枚举名称

    首先,COLOR_ENUM宏定义了一个枚举列表模板,这是一个X宏技巧,它允许我们用不同的方式重用同一个枚举列表。 #define COLOR_ENUM(X) \ X(RED) \ X(GREEN) \ X(BLUE)2 DECLARE_ENUM宏用于生成枚举定义 case BLUE: return "BLUE"; default: return "UNKNOWN"; }}这种实现的优点是:维护方便:只需要在COLOR_ENUM宏中添加或删除枚举 ,所有相关代码都会自动更新避免重复:不需要手动维护枚举和字符串的对应关系编译时检查:如果漏掉了某个枚举,编译器会给出警告性能好:使用switch语句比查表更快内存效率高:字符串直接存储在代码段,不需要额外的运行时数据结构缺点是 :宏的使用使代码不太直观调试时可能不太方便,因为需要查看预处理后的代码所有枚举必须在同一个地方定义

    74210编辑于 2025-03-26
  • 来自专栏深蓝居

    如何使用枚举的组合

    有时我们需要将枚举定义为1,2,4,8.......的,这样当传入一个3,那么就是表示1,2的组合,如果传入7,那就表示1,2,4的组合。要实现这种功能我们需要用到FlagsAttribute。 [Flags] public enum FormType {     Reimburse=,     Payment=,     Precharge=,     PO= } 2.组合枚举的判断         {             Console.WriteLine("PO");         }         Console.WriteLine("End");     } 3.生成组合枚举

    4.9K30编辑于 2022-06-16
  • 来自专栏韦弦的偶尔分享

    Objective-C 枚举注释

    枚举特别多的时候,想每一个枚举都具体注释提示的话,就只能在每个枚举上一行加上/// ···或/** ··· */,但是会让代码显得不整齐(可能是我强迫症?) ,如果需要给每个枚举增加一个简短的注释,并且在使用的时候有注释提示可以这样写。 - 带提示代码后单行注释 ://!< ··· 或多行注释: /**< ··· */和 /*! < ··· */ /// 测试枚举 typedef NS_ENUM(NSUInteger, ZYTestType) { ZYTestTypeA, //! < 类型C */ }; 枚举注释 这种注释方法,同样适合类的属性注释或者结构体属性注释。

    1.7K20发布于 2020-04-14
  • 来自专栏.Net Core技术分享

    枚举转换(字符串转换为枚举和整数转换为枚举

    假设定义了一个这样的枚举类型: enum MyEnum { aa = 1, bb = 2 } 1、字符串转换为枚举: string strA = "aa"; MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA); 上面的方法是区分大小写的,也就是说,如果strA的为“AA aa"; MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA, true); 当最后一个参数设置为true时忽略大小写 2、整数转换为枚举 int iA = 2; MyEnum myEnum = (MyEnum)iA; 这种方法可以将一个整数转换为枚举类型;如果iA不是一个有效的枚举,则转换失败。

    4.6K30发布于 2019-09-26
  • 来自专栏TechFlow

    EasyC++14,枚举的使用

    这是EasyC++系列的第14篇,咱们来聊聊C++当中的枚举枚举 简介 C++当中提供了枚举操作,我们可以使用enum关键字创建枚举类型。 使用 我们定义了枚举类型之后,可以当做正常类型来进行声明: color a; 由于color是一个枚举类型,所以当我们赋值的时候,只能赋值列举出来的类型,如果附上其他的可能会出问题。 枚举的取值范围 前文说了,只有声明中的枚举是有效的,然而由于C++允许使用强制转换转换成枚举,所以理论上枚举取值范围内的都可以被转换成枚举,虽然这些在逻辑上不一定有意义。 对于枚举变量来说,它的范围并不是固定的,而是根据定义情况波动的。C++会根据枚举声明的情况计算上限和下限,只能允许在范围内的整型强制转化为枚举。 所以这个枚举的上限就是31,对于下限也会采用类似的计算,如果定义的最小大于等于0,那么它的下限就是0,否则采取同样的算法,只不过加上负号。 之所以会如此复杂,也是为了尽可能地节省内存空间。

    1.1K10编辑于 2022-08-26
  • 来自专栏飞扬的花生

    c#枚举的描述和

    (string[] args) { TestEnum testEnum = TestEnum.one; // 获取枚举的描述 string thisValue = FetchDescription(testEnum); //获取枚举

    1.4K30发布于 2018-05-28
  • 来自专栏码农沉思录

    枚举很好用啊,为啥阿里不建议返回枚举

    从手册可以看出,定义和使用枚举,阿里开发手册都是支持的,但是为啥,返回就要反对了呢? 看看作者孤尽是怎么说的 由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常。 可是为什么在返回和参数进行了区分呢,如果不兼容,那么两个都有问题,怎么允许参数可以有枚举。当时的考虑,如果参数也不能用,那么枚举几乎无用武之地了。 但如果是接口返回,就比较恶心了,因为解析回来的这个枚举,可能本地还没有,这时就会抛出序列化异常。 返回:Weather guess(参数),那么对方运算后,返回一个SNOWY,本地枚举里没有这个,傻眼了。 不过,另一位网友Brian的回答也很通俗易懂 枚举,就是把已知的全部罗列出来。 库版本升级后我支持了更多,你不知道情况下自然不会使用,反正我不支持的参数你不可能传递给我,所以作为输入,枚举简直就是安全保障。但作为返回,情况就反过来了。

    2.5K20发布于 2020-02-11
  • 来自专栏全栈程序员必看

    Java中怎样由枚举常量的ordinal获得枚举常量对象

    WINTER } 就定义了一个季节枚举类型。 也就是说,使用name()方法和valueOf(String)方法能够在枚举类型对象和字符串之间方便得转换。 当然,假设valueOf(String)方法的參数不是该枚举类型合法的字符串,则会抛出IllegalArgumentException异常。 对于这个问题,实际上能够利用枚举类型的values()方法间接的做到。values()方法返回一个枚举对象数组,比方本例就是Season[],数组元素依照序数排列。 在自己定义的枚举类型中,我们仅仅要定义自己的valueOf(int)方法,并返回该数组下标对象的对象就能够了。

    2.8K10编辑于 2022-07-14
  • 来自专栏芋道源码1024

    枚举很好用啊,为啥阿里不建议返回枚举

    我们先来看看阿里开发手册关于枚举使用的建议 ? 从手册可以看出,定义和使用枚举,阿里开发手册都是支持的,但是为啥,返回就要反对了呢? 可是为什么在返回和参数进行了区分呢,如果不兼容,那么两个都有问题,怎么允许参数可以有枚举。当时的考虑,如果参数也不能用,那么枚举几乎无用武之地了。 但如果是接口返回,就比较恶心了,因为解析回来的这个枚举,可能本地还没有,这时就会抛出序列化异常。 返回:Weather guess(参数),那么对方运算后,返回一个SNOWY,本地枚举里没有这个,傻眼了。 不过,另一位网友Brian的回答也很通俗易懂 枚举,就是把已知的全部罗列出来。 库版本升级后我支持了更多,你不知道情况下自然不会使用,反正我不支持的参数你不可能传递给我,所以作为输入,枚举简直就是安全保障。但作为返回,情况就反过来了。

    2.3K20发布于 2019-12-24
  • 来自专栏centosDai

    CA1069:枚举不得具有重复

    规则 ID CA1069 类别 设计 修复是中断修复还是非中断修复 重大 原因 枚举具有多个成员,这些成员显式分配有相同常数值。 规则说明 每个枚举成员都应具有唯一的常数值,或者为其显式分配枚举中的前一个成员以指示共享的明确意图。 复制粘贴错误:用户复制了一个现有成员定义,然后重命名了该成员,但忘记更改。 合并多个分支中的解决方案:在不同分支中添加了具有不同名称但有相同的新成员。 如何解决冲突 若要解决冲突,请分配新的唯一常数值,或分配枚举中的前一个成员以指示共享同一的明确意图。

    3300编辑于 2022-02-22
  • 来自专栏stcnb

    CA1069:枚举不得具有重复

    规则 ID CA1069 类别 设计 修复是中断修复还是非中断修复 重大 原因 枚举具有多个成员,这些成员显式分配有相同常数值。 规则说明 每个枚举成员都应具有唯一的常数值,或者为其显式分配枚举中的前一个成员以指示共享的明确意图。 复制粘贴错误:用户复制了一个现有成员定义,然后重命名了该成员,但忘记更改。 合并多个分支中的解决方案:在不同分支中添加了具有不同名称但有相同的新成员。 如何解决冲突 若要解决冲突,请分配新的唯一常数值,或分配枚举中的前一个成员以指示共享同一的明确意图。

    91620编辑于 2022-01-11
  • 来自专栏stcnb

    CA1008:枚举应具有零

    规则 ID CA1008 类别 设计 修复是中断修复还是非中断修复 非中断 - 如果系统提示你向无标志枚举添加 None 。 中断 - 如果系统提示你重命名或删除任何枚举。 或者,枚举定义多个零成员。 默认情况下,此规则仅查看外部可见的枚举,但这是可配置的。 规则说明 像其他类型一样,未初始化枚举的默认为零。 无标志特性的枚举应定义为零的成员,这样默认即为该枚举的有效。 如果可行,请将成员命名为“None”。 否则,将零赋给最常使用的成员。 默认情况下,如果未在声明中设置第一个枚举成员的,则其为零。 如果应用了 FlagsAttribute 的枚举定义为零成员,则该成员的名称应为“None”,以指示枚举中尚未设置。 ”枚举 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1027:用 FlagsAttribute 标记枚举 另请参阅 System.Enum

    80420编辑于 2022-01-10
  • 来自专栏centosDai

    CA1700:不要用“Reserved”命名枚举

    规则 ID CA1700 类别 命名 修复是中断修复还是非中断修复 重大 原因 枚举成员的名称包含单词“reserved”。 在将来的版本中,向枚举添加新成员,而不是使用预留成员。 在大多数情况下,只要添加新成员不会导致原始成员的发生变化,添加新成员就不是一项中断性变更。 在少数情况下,添加成员是一项中断性变更,即使原始成员保留其原始也是如此。 主要问题是,如果不中断对包含整个成员列表的返回使用 switch(在 Visual Basic 中为 Select)语句并且在默认情况下引发异常的调用方,则不能从现有代码路径返回新成员。 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1008:枚举应具有零 CA1027:用 FlagsAttribute 标记枚举

    73500编辑于 2022-02-18
  • 来自专栏Go工具箱

    Go 100 mistakes之如何正确设置枚举中的零

    我们知道,在Go中会给定义的变量一个默认,比如int类型的变量默认是0。我们在定义枚举时,往往也会从0开始定义。本文就解释如何区分是显示指定了变量的0还是因为确实字段而得到的默认。 我们创建Weekday类型的枚举的方法是比较合适的。 这个问题和我们定义Weekday枚举的方式有关。实际上,Unknown是枚举的最后一个。因此,它的应该等于7. 为了解决该问题,处理一个unknown的枚举的最好的实践方法是将它设置成0(int类型的零)。 根据经验,枚举的未知应该设置为枚举类型的零。这样,我们就可以区分出显示和缺失值了。

    5.6K10编辑于 2023-01-31
  • 来自专栏centosDai

    CA1700:不要用“Reserved”命名枚举

    规则 ID CA1700 类别 命名 修复是中断修复还是非中断修复 重大 原因 枚举成员的名称包含单词“reserved”。 在将来的版本中,向枚举添加新成员,而不是使用预留成员。 在大多数情况下,只要添加新成员不会导致原始成员的发生变化,添加新成员就不是一项中断性变更。 在少数情况下,添加成员是一项中断性变更,即使原始成员保留其原始也是如此。 主要问题是,如果不中断对包含整个成员列表的返回使用 switch(在 Visual Basic 中为 Select)语句并且在默认情况下引发异常的调用方,则不能从现有代码路径返回新成员。 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1008:枚举应具有零 CA1027:用 FlagsAttribute 标记枚举

    2600编辑于 2022-02-18
  • 来自专栏centosDai

    CA1700:不要用“Reserved”命名枚举

    规则 ID CA1700 类别 命名 修复是中断修复还是非中断修复 重大 原因 枚举成员的名称包含单词“reserved”。 在将来的版本中,向枚举添加新成员,而不是使用预留成员。 在大多数情况下,只要添加新成员不会导致原始成员的发生变化,添加新成员就不是一项中断性变更。 在少数情况下,添加成员是一项中断性变更,即使原始成员保留其原始也是如此。 主要问题是,如果不中断对包含整个成员列表的返回使用 switch(在 Visual Basic 中为 Select)语句并且在默认情况下引发异常的调用方,则不能从现有代码路径返回新成员。 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1008:枚举应具有零 CA1027:用 FlagsAttribute 标记枚举

    2000编辑于 2022-02-23
  • 来自专栏DotNet NB && CloudNative

    .Net之API响应枚举处理

    前言 最近在迁移一个老项目的接口到另一个新项目中,为了前端同事最小修改,所以响应的格式等最好保持不变,然后在使用中发现了老项目中如果遇到返回的内容包含枚举,就将其转为枚举字符串内容进行返回,然后就出现了下面的修改 2024-12-23", "temperatureC":6, "temperatureF":42, "summary":"Sweltering", "sex":1 }, 这个就很奇怪了,因为我对这个返回枚举做序列化操作 (new StringEnumConverter()); 引起了其他问题 前端反馈该项目的其他部分接口本来枚举应该返回枚举的,现在也返回枚举字符串了,我??? //options.SerializerSettings.Converters.Add(new StringEnumConverter()); }); 这样子就可以实现,如果接口中的返回枚举想返回枚举字符串就特殊处理 ,不需要的就不处理,默认返回枚举值了(当然还是更建议统一下返回) 总结 如果使用NewtonsoftJson替换了默认的序列化包方案,那么在使用其特性的时候还得注意,别引用错命令空间了。

    55400编辑于 2025-02-18
领券