枚举类型

集合的枚举和排序

送分小仙女□ 提交于 2020-01-19 08:49:06
原文 实现了IEnumerable接口才能遍历 先来看看IEnumerable接口的定义: public interface IEnumerable { IEnumerator GetEnumerator(); } 这个接口非常简单,主要就是一个方法GetEnumerator,用来返回一个IEnumerator对象。继续深入下去,IEnumerator接口的定义如下: public interface IEnumerator { bool MoveNext(); void Reset(); object Current{get;} } 上面的IEnumerator接口定义的属性和方法,只有一个目的,就是实现如何遍历。下面具体解释一下: Current属性:用来返回当前集合项的值 MoveNext方法:移动到集合对象的下一项,如果有下一项,就返回true。如果没有,就返回false。 Reset方法:重置然后可以重头访问集合 当用foreach循环来访问一个对象的时候,其实是默认的调用了对象里面的GetEnumerator()方法。而该方法就是由IEumerable接口给暴露出来的,所以如果想自定义一个能实现枚举功能的集合类就要先实现一个IEnumerable接口,然后实现里面的GetEnumerator方法。如下所示: namespace Test { class Program

enum

老子叫甜甜 提交于 2020-01-19 06:56:48
由于枚举类型的实例是常量,因此按照命名惯例他们都用大写字母表示。(如果在一个名字中间有多个单词,用下划线将他们隔开)。 特性 枚举中所有的成员,必须出现在枚举对象的下面。 如果枚举类中有一个成员,那么枚举对象最后不能省略分号。 枚举中的构造方法必须私有。(也分为有参构造和无参构造) 抽象方法的意义:可以用来描述某个枚举成员的信息,提高程序的可读性。 可以在switch语句内使用。 枚举中常用的方法 String name() 返回枚举常量的名称,与其枚举声明中声明完全相同 int ordinal() 用来表示某个特定的enum常量的声明顺序。从0开始 static values():按照enum常量的声明顺序,产生有这些常量值构成的数组。 枚举类型的使用 public enum Weeked { MONDYA { //可以理解为是Weeked的一个实例对象 @Override public void desc ( ) { System . out . println ( "今天星期一" ) ; } } , TUESDAY ( "星期二" ) { @Override public void desc ( ) { System . out . println ( "今天星期二" ) ; } } , WEDNESDAY ( "星期三" ) { @Override public void

异常处理,枚举,泛型

倾然丶 夕夏残阳落幕 提交于 2020-01-18 00:00:56
Java异常处理: 5个关键字: try(尝试)、catch(捕获)、 finally(最终的)、throw(抛出)、throws 使用方法: finally :一般写的是资源释放代码,无论是否发生异常代码总能执行。 try{}catch(异常类型){} try{}catch(异常类型){} finally{} public class TestThrows { //除法 public double div() throws ArithmeticException{ int a=1; int b=0; if(b==0){ throw new ArithmeticException("aaaaaa"); } return a/b; } public static void main(String[] args) { TestThrows tt = new TestThrows(); try { tt.div(); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } } //如果有finally的话,finally中的代码是在return之前执行的 子类抛出的异常范围,不能宽于父类; 异常类关系: java.lang.Object 继承者 java.lang

java中enum类型的使用

僤鯓⒐⒋嵵緔 提交于 2020-01-17 05:06:52
java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义。既然不明白就抽时间研究下吧。 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。要了解枚举类型,建议大家先打开jdk 中的Enum 类简单读一下,这个类里面定义了很多protected 方法,比如构造函数,如果要使用这些方法我们可以把枚举类型定义到当前类中。每个枚举类型,都有自己的名字和顺序,当我们输出一个枚举类型的时候,会输入枚举类型的name ,具体可以参考下面的例子。 一、 通常定义常量方法 我们通常利用public final static 方法定义的代码如下,分别用1 表示红灯,3 表示绿灯,2 表示黄灯。 package com.csdn.myEnum; public class Light { /* 红灯 */ public final static int RED =1; /* 绿灯 */ public final static int GREEN =3; /* 黄灯 */

网络安全开源扫描引擎

笑着哭i 提交于 2020-01-17 03:19:06
python redis awvs api nessus api =========================================== https://github.com/boy-hack/bugscan w8ay专属扫描器 =========================================== https://github.com/MXi4oyu/DockerXScan DockerXScan——Docker镜像漏洞扫描器 =========================================== https://github.com/netxfly/passive_scan 分布式 基于代理的web扫描器 =========================================== https://github.com/boy-hack/w8scan =========================================== https://github.com/blackye/BkScanner BkScanner 分布式、插件化web漏洞扫描器 =========================================== https://github.com/sowish/LNScan

关于枚举的用法和类型转换

坚强是说给别人听的谎言 提交于 2020-01-15 03:30:22
一、 定义 1 、每个枚举成员均具有相关联的常数值。此值的类型就是包含了它的那个枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。示例 enum Color: uint { Red = -1, Green = -2, Blue = -3 } 产生编译时错误,原因是常数值 -1 、 -2 和 – 3 不在基础整型 uint 的范围内。 2 、枚举默认类型是 int ,从 0 开始 3 、多个枚举成员可以共享同一个关联值。示例 enum Color { Red, Green, Blue, Max = Blue } 显示一个枚举,其中的两个枚举成员( Blue 和 Max )具有相同的关联值。 4 、一个枚举成员的关联值或隐式地、或显式地被赋值。如果枚举成员的声明中具有“常数表达式”初始值设定项,则该常数表达式的值(它隐式转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明不具有初始值设定项,则它的关联值按下面规则隐式地设置: 5 、如果枚举成员是在枚举类型中声明的第一个枚举成员,则它的关联值为零。 否则,枚举成员的关联值是通过将前一个枚举成员(按照文本顺序)的关联值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。 示例 using System; enum Color { Red, Green = 10,

单例模式

我是研究僧i 提交于 2020-01-15 00:27:55
单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 介绍 意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决: 一个全局使用的类频繁地创建与销毁。 何时使用: 当您想控制实例数目,节省系统资源的时候。 如何解决: 判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 关键代码: 构造函数是私有的。 应用实例: 1、一个班级只有一个班主任。 2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。 3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。 缺点:

unity含枚举类型json数据的序列化和反序列化

♀尐吖头ヾ 提交于 2020-01-14 15:46:10
unity含枚举类型json数据的序列化 编程环境win10+unity5.3f+VS2017 unity的json功能不支持枚举类型的数据,这里写一下刚学到的转化方式。 建立一个枚举类 public enum UIPanelType { ItemMessage, Knapsack, MainMenu, Shop, Skill, System, Task } 主要思想是利用String存储枚举类型,并且在每次生成对象时把String转换为枚举类型。 using UnityEngine; using System.Collections; using System; [Serializable] public class UIPanelInfo :ISerializationCallbackReceiver { [NonSerialized] public UIPanelType panelType; public string panelTypeString; public string path; // 反序列化 从文本信息 到对象 public void OnAfterDeserialize()//这个方法在每次序列化后调用 { UIPanelType type = (UIPanelType)System.Enum.Parse(typeof(UIPanelType),

C# 复杂变量类型——枚举(Enum)

China☆狼群 提交于 2020-01-14 08:39:20
除了简单的变量类型外,C# 还提供了三个较复杂的变量: 枚举、结构和数组 。 C# 枚举(Enum): 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 枚举类型是一种值类型,定义好的值会存放到栈中。 枚举类型在定义时使用 enum 关键字表示,枚举类型的定义与类成员的定义是一样的,或者直接定义在命名空间中。 注意:不能直接将枚举类型定义到方法中。 声明枚举的一般语法: 访问修饰符 enum 变量名 : 数据类型 { 值 1 , 值 2 , . . . 值n } 其中: <1>、访问修饰符 与类成员的访问修饰符一样,省略访问修饰符也是代表使用 private 修饰符的。 例如: public enum test { 男 = 0 , 女 = 1 } <2>、数据类型 枚举使用一个基本类型来存储。枚举类型可取的每个值都存储为该基本类型的一个值,默认情况下该类型为 int。 当然,也可以指定其他基本类型。 枚举的基本类型可以是:byte、sbyte、short、ushort、int、uint、long 和 ulong 例如: enum location : byte { north = 1 , south = 2 , east = 3 , west = 4 } <3>、值1,值2,…

对枚举进行操作

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-13 20:55:53
EnumDescription类代码 using System; using System.Reflection; using System.Collections; using System.Text; namespace EnumHelper { /// <summary> /// 把枚举值按照指定的文本显示 /// <remarks> /// 一般通过枚举值的ToString()可以得到变量的文本, /// 但是有时候需要的到与之对应的更充分的文本, /// 这个类帮助达到此目的 /// </remarks> /// </summary> /// <example> /// [EnumDescription("中文数字")] /// enum MyEnum /// { /// [EnumDescription("数字一")] /// One = 1, /// /// [EnumDescription("数字二")] /// Two, /// /// [EnumDescription("数字三")] /// Three /// } /// EnumDescription.GetEnumText(typeof(MyEnum)); /// EnumDescription.GetFieldText(MyEnum.Two); /// EnumDescription