枚举类型

TypeScript-初级-04-枚举

情到浓时终转凉″ 提交于 2019-12-03 15:19:54
枚举 枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。 简单的例子 枚举使用 enum 关键字来定义: enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; 枚举成员会被赋值为从 0 开始递增的数字,同时也会对枚举值到枚举名进行反向映射: enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; console.log(Days["Sun"] === 0); // true console.log(Days["Mon"] === 1); // true console.log(Days["Tue"] === 2); // true console.log(Days["Sat"] === 6); // true console.log(Days[0] === "Sun"); // true console.log(Days[1] === "Mon"); // true console.log(Days[2] === "Tue"); // true console.log(Days[6] === "Sat"); // true 事实上,上面的例子会被编译为: var Days; (function (Days) { Days[Days["Sun"] = 0] =

【Unity】Unity中的枚举和标志

对着背影说爱祢 提交于 2019-12-03 15:11:47
原文链接 :http://unity3d.9tech.cn/news/2014/0410/40176.html 枚举和标志 今天的主题是枚举,它是C#语言中的一个很有帮助的工具,可以增强代码的清晰度以及准确性。 枚举一系列值 C#中最经常使用枚举的地方就是用来定义一系列可能值的时候。例如在制作一个角色类游戏中,角色有多个不同的状态效果。可以用一些基本的方式来定义玩家可能的状态效果: using UnityEngine; public class Player : MonoBehaviour { public string status; void Update() { if (status == "Poison") { //Apply poison effect } else if (status == "Slow") { //Apply slow effect } else if (status == "Mute") { //Apply mute effect } } } 此处我们用一个简单的if-else检测来查看应用的是哪个状态效果,哪个运行良好。但是如果你想应用一个状态效果,但是突然写成这样: //Oops, I spelled "Poison" wrong! status = "Pioson"; 突然,就不会有什么状态效果了。我们会利用if

Unity 枚举值在Inspector面板显示中文

浪尽此生 提交于 2019-12-03 15:10:24
Unity 枚举值在Inspector面板显示中文 一般给策划写编辑器时便于策划查看选择类型,将枚举值显示为中文,如下所示 代码如下 using UnityEngine; using System; #if UNITY_EDITOR using UnityEditor; using System.Reflection; using System.Text.RegularExpressions; #endif /// <summary> /// 设置枚举名称 /// </summary> #if UNITY_EDITOR [AttributeUsage(AttributeTargets.Field)] #endif public class EnumAttirbute : PropertyAttribute { /// <summary> /// 枚举名称 /// </summary> public string name; public EnumAttirbute(string name) { this.name = name; } } #if UNITY_EDITOR [CustomPropertyDrawer(typeof(EnumAttirbute))] public class EnumNameDrawer : PropertyDrawer { public

Unity编辑器实现枚举多选

[亡魂溺海] 提交于 2019-12-03 15:09:23
简介: 在编辑器中,可以很简单的实现枚举的多选。 在脚本中自定义枚举属性 /// <summary> /// 定义多选属性 /// </summary> public class EnumMultiAttribute : PropertyAttribute { } /// <summary> /// 绘制多选属性 /// </summary> [CustomPropertyDrawer(typeof(EnumMultiAttribute))] public class EnumMultiAttributeDrawer : PropertyDrawer { public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { property.intValue = EditorGUI.MaskField(position, label, property.intValue , property.enumNames); } } 此时再需要多选的枚举上加上属性标签 /// <summary> /// 测试枚举 /// </summary> public enum EnumType { One, Two, Three, Four } [Header("测试枚举")]

Java枚举

一曲冷凌霜 提交于 2019-12-03 14:38:05
一、背景 所属包java.lang包 jdk1.5后引入的新特性 二、基本使用 (一)、 创建一个枚举 public enum TestEnum { A,B,C; } 以上,创建了一个简单的枚举,这个枚举里有三个枚举项,分别是A,B,C。 需要注意的是: A,B,C每一个都称为枚举项,它们都是本类的实例。 在定义枚举项时,多个枚举项之间使用逗号分隔,最后一个枚举项后需要给出分号!但如果枚举类中只有枚举项(没有构造器、方法、实例变量),那么可以省略分号 。就像下面这样: public enum TestEnum { A,B,C } 但是如果有构造器、方法等枚举项必须在第一行,否则编译出错。 所有枚举类默认都是Enum(java.lang.Enum)类的子类,编译时默认会继承Enum类。无需手动使用extends关键字来继承。 (二)、给枚举赋值 枚举不能使用 = 赋值,而是使用构造方法赋值。 public enum TestEnum { A(1),B(2),C(3); private int value; private TestEnum(int value) { this.value = value; } } 枚举可以有任意个属性,像这样: public enum TestEnum { A(1, "a", true),B(2, "b", false),C(3, "c", false

C# 枚举

元气小坏坏 提交于 2019-12-03 07:32:57
一、简介 枚举是一组命名整型常量;枚举类型是使用 enum 关键字声明的;C# 枚举是值类型。 二、语法 枚举的语法: public enum 枚举名 { 值1, 值2, 值3, ............ } 或者 enum 枚举名 { 值1, 值2, 值3, ............ } public:访问修饰符,公共的公开的,哪都可以访问; enum:关键字,声明枚举的关键字; 枚举名:要符合Pascal命名规范; 将枚举声明到命名空间下面,类的外面,表示这个命名空间下,所以类都可以访问这个枚举; 三、类型转换 我们可以将一个枚举类型的变量跟int类型和string类型互相转换: 1.枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换,当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。 2.如果将枚举类型转换成string类型,则直接调用ToString(). 3.如果将字符串转换成枚举类型则需要下面这样一行代码: (要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),"要转换的字符串"); 如果转换的字符串是数字,则就算枚举中没有,也会不会抛异常。 如果转换的字符串是文本,如果枚举中没有,则会抛出异常。 备注: 所有的类型都能够转换成string类型,调用ToString()。 四、实例 using

《TypeScript入门教程》笔记

不打扰是莪最后的温柔 提交于 2019-12-03 04:27:42
基础 原始数据类型 布尔值 let isDone: boolean = false; 数值 let decLiteral: number = 6; 字符串 let myName: string = 'tom'; null/undefined 1.示例 let myName: null = null; let myName: undefined = undefined; 2.它们是所有类型的子类型 let val: 其它类型 = undefined; 非原始数据类型 空值 1.关键字为void,只能被赋值undefined和null let unusable: void = undefined; 任意值 1.可以赋值为任意类型的值(没有类型限制) let myFavoriteNumber: any = 'seven'; myFavoriteNumber = 7; 2.对任意值进行任何操作,返回值类型都是任意值 3.变量声明时,如果未指定类型 a.未赋值,则会默认为any类型 let something; something = 'seven'; something = 7; b.赋值了,则会被类型推断为所赋值的类型 let myFavoriteNumber = 'seven'; myFavoriteNumber = 7; // 会报错 联合类型 1.表示取值可以为多种类型中的一种 2

SpringBoot与MybatisPlus3.X整合之通用枚举(十二)

泄露秘密 提交于 2019-12-03 02:23:24
一 通用枚举 解决了繁琐的配置,让 mybatis 优雅的使用枚举属性! 自 3.1.0 开始,可配置默认枚举处理类来省略扫描通用枚举配置 默认枚举配置 升级说明: 3.1.0 以下版本改变了原生默认行为,升级时请将默认枚举设置为 EnumOrdinalTypeHandler 影响用户: 实体中使用原生枚举 其他说明: 配置枚举包扫描的时候能提前注册使用注解枚举的缓存 推荐配置: 使用实现 IEnum 接口 推荐配置 defaultEnumTypeHandler 使用注解枚举处理 推荐配置 typeEnumsPackage 注解枚举处理与 IEnum 接口 推荐配置 typeEnumsPackage 与原生枚举混用 需配置 defaultEnumTypeHandler 与 typeEnumsPackage 申明通用枚举属性 方式一: 使用 @EnumValue 注解枚举属性 完整示例 public enum GradeEnum { ​ PRIMARY(1, "小学"), SECONDORY(2, "中学"), HIGH(3, "高中"); ​ GradeEnum(int code, String descp) { this.code = code; this.descp = descp; } ​ @EnumValue//标记数据库存的值是code private final int

C++编程基础一 15-枚举类型

匿名 (未验证) 提交于 2019-12-03 00:42:01
1 // 15-枚举类型.cpp: 定义控制台应用程序的入口点。 2 // 3 4 #include " stdafx.h " 5 #include <iostream> 6 #include <climits> 7 using namespace std; 8 9 enum HeroType // 枚举类型是整型。适合用作标签Tag。 10 { 11 Tank, // 0 12 Magic, // 1 13 ADC, // 2 14 Assist // 3 15 }; 16 17 enum HumanType 18 { 19 Teacher = 1 , // 可以修改其中的值 20 Student = 4 , 21 Engineer = 5 , 22 Famer = 7 23 }; 24 int main() 25 { 26 HeroType heroType = Magic; // 定义一个枚举。 27 heroType = ADC; // 修改枚举的值。 28 cout << heroType << endl; 29 30 HumanType humanType = Famer; 31 // 32 auto myType = humanType + heroType; 33 cout << myType << endl; // 是可以的 34 35 int i =

用反射的方法获取枚举值(数据字典)

匿名 (未验证) 提交于 2019-12-03 00:40:02
最近有这么一个需求,希望把系统中的枚举类型作为数据字典返回给前端,做编辑页的下拉选项。因为枚举类型很多,一个一个提供接口就有点儿太low了……,所以想到了java的反射机制。在网上找到了一个例子,作为参考: Java 将枚举存入List集合( https://blog.csdn.net/qq_22158021/article/details/78091978 ) 我并没有做得那么复杂,只是简单的使用了反射机制,直接上代码: 接口类,所有的枚举类型都继承这个接口类: package com.my.utils; public interface EnumMessage { String getKey(); String getValue(); } 枚举类: package com.my.enumtype; import com.my.utils.EnumMessage; public enum Status implements EnumMessage { ACTIVE("正常"), CLOSED("关闭"), DELETED("删除"); public String getDesc() { return desc; } private String desc; private Status(String desc) { this.desc = desc; } @Override