枚举类型

枚举的强制类型转化通用泛型方法

那年仲夏 提交于 2019-12-04 08:58:39
public static T ParseEnum<T>(object oValue, T defaultValue) { if (oValue == null) return defaultValue; if (oValue.Equals('\0')) return (T)Convert.ChangeType(0, typeof(T)); if (oValue is T) return (T)oValue; var sValue = oValue.ToString(); if (string.IsNullOrEmpty(sValue)) return defaultValue; try { var o = Enum.Parse(typeof(T), sValue); if (o == null) return defaultValue; return (T)o; } catch (Exception error) { return defaultValue; } } 来源: https://www.cnblogs.com/engyue/p/11851444.html

Java 枚举类型的使用

▼魔方 西西 提交于 2019-12-04 08:10:34
看了一篇别人写的关于枚举类型的博客 https://www.cnblogs.com/jin-zhe/p/8259422.html 以下是个人学习枚举的一些总结 public enum AuditEnum { NOT_SUBMIT("未提交", "0"), TO_AUDIT("待审批", "1"), REVOKE("撤回", "2"), READ("已阅", "3"), PASS("通过", "4"), NOT_PASS("驳回", "5"), FINALIZED("定稿", "6"), DELETE("删除", "7"); private String name; private String value; AuditEnum(String name, String value) { this.name = name; this.value = value; } /** * 根据值,查找名字 * @param index * @return */ public static String getName(String index) { for (AuditEnum c : AuditEnum.values()) { if (c.getValue() == index) { return c.name; } } return "-1"; } /** * 根据名字,查找值 *

Docs-.NET-C#-指南-语言参考-关键字-值类型:enum

冷暖自知 提交于 2019-12-04 07:17:31
ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:enum 1. 返回顶部 1、 enum(C# 参考) 2015/07/20 enum 关键字用于声明枚举,一种包含一组被称为枚举数列表的已命名常数的不同类型。 通常最好是直接在命名空间内定义枚举,以便命名空间中的所有类都可以同样方便地访问它。 但是,也可能会在类或结构中嵌套枚举。 默认情况下, 第一个枚举数具有值 0,并且每个连续枚举数的值将增加 1 。 例如,在以下枚举中, Sat 的值为 0 , Sun 的值为 1 , Mon 的值为 2 ,依次类推。 C# 复制 enum Day {Sat, Sun, Mon, Tue, Wed, Thu, Fri}; 枚举数可以使用初始值设定项来替代默认值,如下面的示例中所示。 C# 复制 enum Day {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri}; 在此枚举中, 强制元素的序列从 1 开始,而不是 0 。 但建议包括一个值为 0 的常量 。 有关详细信息,请参阅 枚举类型 。 每个枚举类型都有一个可以为任意 整型数值类型 的基础类型。 char 类型不能为枚举的基础类型。 枚举元素的默认基础类型是 int 。若要声明另一整型的枚举(如 byte ),则请在后跟该类型的标识符后使用冒号,如以下示例所示。 C# 复制 enum Day

Java枚举类接口实战

我们两清 提交于 2019-12-04 02:06:56
枚举类可以实现一个或多个接口。与普通类实现接口完全一样,枚举类实现接口时,需要实现该接口所包含的方法。 如果需要每个枚举值在调用同一个方法时呈现不同的行为,则可以让每个枚举值在{...}匿名块中实现自己的业务逻辑。 public interface IGradeHandler { String getGrade(String studentName); } public enum GradeHandlerEnum implements IGradeHandler { //five grade levels A B C D E A("90~100") { @Override public String getGrade(String studentName) { return studentName + " Outstanding"; } }, E("0~59") { @Override public String getGrade(String studentName) { return studentName + " Fail"; } }; private String score; GradeHandlerEnum(String score) { this.score = score; } public String getScore() { return this.score

创建和销毁对象——用私有构造器或者枚举类型强化Singleton属性

て烟熏妆下的殇ゞ 提交于 2019-12-03 20:52:03
参考资料:《Effective Java》、《Java核心技术 卷1》、 https://www.cnblogs.com/zhaosq/p/10135362.html 基础回顾 1.什么是枚举? 有时候一个变量的取值只在一个有限的集合内,比如衣服的大小,就可以用到枚举。 //自定义枚举类型 enum Size {S,M,L,X}; //声明Size类型的变量 Size size=Size.M 枚举类型的变量只是存储这个枚举指定的变量,如上面的size只能是S,M,L,X。 实际上, enum是与类同级的 ,但是又不能完全当作类。 与类的区别在于: 1.类的关键字是class,枚举是enum 2.类可以在方法内部,也就是局部内部类。但是enum不能在方法内声明,只能在类的外部或者类的内部方法的外部声明。 相同点就是enum内也可以写一些构造器、方法等 2.什么是Singleton Singleton就是单例模式,指一个类只能有一个实例。比如我们常常使用的Windows系统,大家随变点击一个系统功能的图标,比如此电脑或者垃圾箱,不管点击多少次,永远只有那一个窗口,其实这就是单例模式的一种表现。 单例模式的实现主要通过以下两个步骤: 1.将该类的构造器私有化,这样其他类就不能通过构造器实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。 2

《深入理解mybatis原理》 以及 mybatis自定义枚举转换类

喜你入骨 提交于 2019-12-03 20:26:59
深入理解mybatis原理: 专栏:深入理解 MyBatis原理 - 博客频道 - CSDN.NET -------------------------------------------------------------------------------- 摘要: mybatis自定义枚举转换类的实现示例。 mybatis提供了EnumTypeHandler和EnumOrdinalTypeHandler完成枚举类型的转换,两者的功能已经基本满足了日常的使用。但是可能有这样的需求:由于某种原因,我们不想使用枚举的name和ordinal作为数据存储字段。mybatis的自定义转换类出现了。 前提知识 1. mybatis废弃了ibatis的TypeHandlerCallback接口,取而代之的接口是TypeHandler,它与原来的接口略有不同,但是方法类似。(见说明 https://code.google.com/p/mybatis/wiki/DocUpgrade3 ) 2. BaseTypeHandler是mybatis提供的基础转换类,该类实现了TypeHandler接口并提供很多公用方法,建议每个自定义转换类都继承它。 示例 使用一段代码,将枚举类EnumStatus中的code属性存储到数据库对应字段statusCustom。 自定义转换类 package com

TypeScript之枚举

白昼怎懂夜的黑 提交于 2019-12-03 20:24:24
什么是枚举类型,有什么作用? 枚举类型就是一个用来组织一些有相似之处的常量的对象,作用就是管理常量,让常量更规范,统一。例: enum Direction { Up = 1, Down, Left, Right } 使用时直接用“.”的方式使用: Direction.Up、Direction.Down ... 枚举类型的特点: 1.手动赋值时从第一个开始自动赋值0,后来依次+1, 2.未手动赋值的项只能在第一个,或只能在赋值为数字的项的后面, 3枚举的键值对会被翻转声明(反向映射) 存疑: 联合枚举与枚举成员的类型 官方文档 enum ShapeKind { Circle, Square, } interface Circle { kind: ShapeKind.Circle; radius: number; } interface Square { kind: ShapeKind.Square; sideLength: number; } let c: Circle = { kind: ShapeKind.Square,  // 这里写任何数字都能通过编译,why // ~~~~~~~~~~~~~~~~ Error! radius: 100, } 来源: https://www.cnblogs.com/superjsman/p/11806878.html

unity学习之枚举类型

心不动则不痛 提交于 2019-12-03 16:05:20
欢迎来到 unity 学习、 unity 培训、 unity 企业培训教育专区,这里有很多 U3D 资源、 U3D 培训视频、 U3D 教程、 U3D 常见问题、 U3D 项目源码,我们致力于打造业内 unity3d 培训、学习第一品牌。 今天由于我们做了周测试,所以学的知识就学的少点啊。通过周测试,我发现了自己的不足之处。就是没有理解什么是构造方法。通过老师的讲解我明白原来构造方法就是初始化数据变量。如果你想是默认的初始化变量不是 0 ;需要你在 Main 方法创建对象的位置给参数赋值,这就是构造方法。比如举个简单易懂得例子啊。 public Text(int n) { Console.WriteLine(n);// 这是参数 } public void Main() { } static void Main(string[] args) { Text t = new Text(2);// 这就是构造方法,在这可以进行赋值啊。 Console.ReadKey(); } 只有不断通过对自己的测试才可以发现自己对什么知识点不熟练啊。然后在对自己的知识进行加固。 枚举类型:是一种值类型,用于声明一组命名的常数。 格式: 访问修饰符 enum 枚举名:基础类型 { 枚举成员 } 之间的转换:基础类型不能隐士转化为枚举类型 枚举类型也不能转换为基础类型。 下面举了一个完整的枚举类型

Unity之EditorGUILayout-枚举

你说的曾经没有我的故事 提交于 2019-12-03 16:04:09
枚举类型和 系统自带的 静态 Mask 枚举 枚举可以自己定义,EnumMaskField则是系统定义好的,有如下几类值 options 是枚举 static Flags 是 EnumMaskField 该脚本拖拽到对象上 using UnityEngine; using System.Collections; using UnityEditor; public enum OPTIONS { CUBE = 0, SPHERE, PLANE, } public class Test : MonoBehaviour { public OPTIONS options = OPTIONS.PLANE; public float number; public StaticEditorFlags staticFlagMask = 0; } InspectorTest 脚本放在 Editor 文件夹下 using UnityEngine; using System.Collections; using UnityEditor; [CustomEditor(typeof(Test))] public class InspectorTest : Editor { public override void OnInspectorGUI() { Test myTest = (Test)target;

从枚举值获取对应的文本描述

安稳与你 提交于 2019-12-03 16:02:20
有时枚举值在显示时,需要显示枚举值对应的文本串。一种方案是在调用的地方使用switch或者if来判断枚举值,然后赋给不同的文本串,但这样一来,如果有较多的地方都用到的时候就会比较麻烦。当然有人说,这种情况下,可以针对这种枚举值封装一个方法,然后来调用。那如果有多个枚举类型都有这样的需求呢?有没有什么比较通用的解决办法?有的。 这里需要用到Description属性,给每个枚举值都赋上一个该属性,然后在该属性中赋上要描述的文本串。比如 #region YesNoEnum public enum YesNoEnum { [Description("是")] Yes, [Description("否")] No } #endregion 注:Desscription需要引用using System.ComponentModel; 那要如何获取这个Description属性的值呢?我们可以作用反射,代码如下 public static class EnumUtil { #region FetchDescription /// <summary> /// 获取枚举值的描述文本 /// </summary> /// <param name="value"></param> /// <returns></returns> public static string FetchDescription