首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# Enum设计和使用的相关技巧

用 2 的幂(即 1、2、4、8 等)定义枚举常量。这意味着组合的枚举常量中的各个标志都不重叠。 请考虑为常用标志组合创建一个枚举常量。...将负数定义为标志枚举常量时应谨慎,因为很多标志位置都可能设置为 1,这可能使您的代码产生混淆并易于发生代码错误。...测试数值中是否已设置标志的一种简便方法为:在数值标志枚举常量之间执行按位“与”操作,这种方法会将数值中与标志不对应的所有位都设置为零,然后测试该操作的结果是否等于该标志枚举常量。...但是,您可以在数值与 None 枚举常量之间执行逻辑(不是按位)比较,以确定数值中是否已设置任何位。 如果创建的是值枚举而不是标志枚举,创建 None 枚举常量仍十分有用。...原因是即使没有在枚举中定义某个数值,也可以将该数值强制转换为枚举类型。

1.1K70

细说枚举

3 ,这时第二个枚举值的整数常量就不是 1 了,而是 4 ,因为当枚举值没有显示赋值时,将会按照上一个枚举值对应的整数值加 1 来作为自己本身对应的整数值。...最后两个枚举值因为显式赋值了因此对应的整数值就是所赋值的数值枚举取值也很简单,只需要 枚举名.枚举值 即可,例如 Country.UK。...这里虽然使用了继承语法但是并没有建立继承关系,所有的枚举基类都是 System.Enum ,这些类都是密封类,无法现有的枚举类型派生出新的成员。...并且在后期向枚举中添加新的枚举值时应将其添加到所有枚举值的后面,或者显示指定枚举值对应的数值,这样才能避免因添加新值导致枚举类型中的枚举值对应的数值改变。...数字转换为枚举我们有两种方法,一种是使用强转,另一种是使用 Enum 的静态方发 ToObject 。

1.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

细说枚举.

枚举和数字之间转换 枚举转换为数字我们可以使用强转,例如 返回结果是 0 。数字转换为枚举我们有两种方法,一种是使用强转,另一种是使用 Enum 的静态方发 。...标志 在开发中有时我们希望能对枚举进行组合使用来表示复合值,那么这时我们就需要定义标志枚举了,标志枚举的名称为复数形式,代表了一个标志的集合。...定义标志枚举的方法如下: 在上面的代码中你会发现一个规律,每个枚举值对应的整数值都是 2的n次方,这是为什么呢。...在标志枚举中要求多个枚举值相互组合后的结果不能包含在标志枚举中,并且基于按位运算的特性可以很方便的使用位运算符来计算一个枚举值是否包含了另外一个枚举值,这在权限系统中相当有用。...属性 枚举值上同样也可以使用属性,例如我们需要打印输出枚举值的中文名,我们就可以通过属性的形式进行设置,首先我们需要定义一个属性: 通过上面的代码我们就能获取到 CN 对应的中文名称了,这段代码并没有进行进一步优化

62410

TCP 请求头

Port(源端口):源端口号 (占用16位),发送端程序端口 Destination Port(目的端口):目的端口号(占用16位),接收端程序端口 Sequence Number(发送数据序号):用来标识TCP...不过,只有当标志位中的ACK标志(下面介绍)为1时该确认序列号的字段才有效。...主要用来解决不丢包的问题; 例如:传输一个文件,文件比较大的 TCP 会把该文件拆成多段进行发送, 假如每段1000个字节,第一次的时候 Sequence Number 会随机一个 int 数值,假如为...TCP Flags(控制位) :TCP控制位(6位),每一位代表一个控制位,它们中的多个可同时被设置为1,主要是用于操控TCP的状态机的,依次为URG,ACK,PSH,RST,SYN,FIN。...因为 Data Offset 只能表示 TCP 头部的长度 必须是 4 字节的倍数。如果 Options 选项不足 4字节的倍数,就需要 Padding 填充为 4 字节的倍数。

1.7K20

让JS代码Level提升的忍者秘籍(实用)

注意:以下取方法适用于32位有符号整数(有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数。...数值范围 -2147483648 到 2147483647) | 0取 | 0 可以将指定数值转为32位有符号整数,也就是取,正负数都可以,但是超过32位数部分会被忽略。...// 代码演示: ~~11.23 -> 11 ~~-11.23 -> -11 << 0取 <<两个小于号表示左移运算。它把数字中的所有数位向左移动指定的数量,当设置为0时,可达到取的效果。...一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。...密封对象是指那些不能添加新的属性,不能删除已有属性,以及不能修改已有属性的可枚举性、可配置性、可写性,但可以修改已有属性的值的对象。

63010

Java基础知识点笔记(一):java中的取与四舍五入

2.java中提供的取的函数 java中提供了三种取的函数: (1).Math.ceil(double num); (2).Math.floor(double num);...结果中可以看出每10笔的利息银行可能就会损失0.005元,千万别小看这个数字,这对于银行来说就是一笔非常大的损失。面对这个问题就产生了如下的银行家涉入法了。...如下: (1).舍去位的数值小于5时,直接舍去。 (2).舍去位的数值大于5时,进位后舍去。...(3).当舍去位的数值等于5时,若5后面还有其他非0数值,则进位后舍去,若5后面是0时,则根据5前一位数的奇偶性来判断,奇数进位,偶数舍去。...注:这些枚举值有时候会用RoundingMode类中的枚举值,其实效果是一样的,RoundingMode只是将BigDecimal中的枚举又封装了一层,简化了一下枚举名,无实质性差别。

2.7K50

实习第五周

为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。...应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。...2.ng的分页 http://www.php.cn/js-tutorial-1909.html Math.ceil用于对数值向上取,即得到大于或等于该数值的最小整数 $scope.setPage...scope.pageSize : $scope.pages; $scope.pageList = []; $scope.selPage = 1; // 设置表格数据源...(GMT时间)之间的毫秒数 2 >(new Date()).valueOf() 返回1970年1月1日至今的毫秒数 3 >new Date().getTime() 返回Date对象的原始值 同样时间戳解析出时间可以用下面的代码

39910

《CLR via C#》笔记:第3部分 基本类型(2)

【本博客有如下定义“Px x”,第一个代表书中的页数,第二个代表大致内容本页第几段开始。...(很推荐放在竖屏上阅读本电子书,这多是一件美事) 欢迎加群学习交流:637959304 进群密码:(CSGO的拆包密码)  ---- 目录 第十五章 枚举类型和位标志 枚举类型 位标志枚举类型添加方法...所有数组都隐式派生自System.Array 所有数组都隐式实现IEnumberable,ICollection和IList 数组的传递和返回 创建下限非零的数组 数组的内部工作原理 固定大小的数组 第十五章 枚举类型和位标志...c) ; 判断枚举对于数值是否合法:IsDefined,IsEnumDefined //定义 public static Boolean IsDefined(Type enumType,0bject...FileAttributes类型在FCL 中的定义如下:(P324 last) 为文件设置特性:(P325 1) //设置只读和隐藏特性 File.SetAttributes(file,FileAttributes.ReadOnly

75610

python里的decimal类型转换

Decimal 实例可以准确地表示任何数,对其上取或下取,还可以对有效数字个数加以限制。Decimal         小数值表示为 Decimal 类的实例。构造函数取一个整数或字符串作为参数。...Decimal 还可以由元组创建,其中包含一个符号标志(0 表示正,1 表示负)、数字 tuple 以及一个整数指数。 ...还可以使用一个上下文(context)覆盖某些设置,如保持精度、如何完成取、错误处理等等。上下文可以应用于一个线程中的所有 Decimal 实例,或者局部应用于一个小代码区。         1....偶数值会导致结果向下取,奇数值导致结果向上取。ROUND_HALF_UP 类似于 ROUND_HALF_DOWN,不过如果最后一位有效数字为 5,值会朝 0 的反方向取。...prec  print '3.14 / 3 =', (decimal.Decimal('3.14') / 3)           Context 支持 with 使用的上下文管理器 API,所以这个设置只在块内应用

1.8K30

概率抽样方法简介

数据源示例: 由于qq号本身的所有数据都是有差异的,不存在周期性的特性,并且是数值型的数据,所以可以采取取模的方式来进行随机抽样,用sql实现的简单示例如下: select * from table_a...这种方法操作简便,可提高估计的精度,系统抽样按照具体的实现方式分为以下两种: (1)无序系统抽样:对总体采用按无关标志的等距抽样,即总体单位的排列顺序和所要研究的标志是无关的,是一种更好的纯随机抽样方式...,即总体单位的排列顺序与所要研究的标志有直接的关系,它能使标志值高低不同的单位,均有可能选入样本,从而提高样本的代表性,减小抽样误差,如现在要调查玩家的充值水平,按照玩家的充值金额大小进行排序(玩家的充值金额实际就代表了玩家的充值水平...群抽样与分层抽样存在直接的差异:(1)分层抽样要求各层之间的差异很大,层内个体或者单元差异小,群抽样是要求群与群之间的差异小,群体之间的单元差异大;(2)分层抽样的样本是每个层内抽取若干单元或者个体构成的...,而群抽样则要么是群抽取,要不群不被抽取 图示说明如下(蓝色圆形,紫色菱形,蓝色圆柱形代表不同类别的用户): 群抽样 分层抽样 5.多级抽样 (Multistage sampling) 多级抽样又叫多阶段抽样

3.7K00

Extensions in UWP Community Toolkit - SurfaceDialTextbox

TextBox 中的数值进行调整,调整方式类似于 NumericUpdown,可以设置数值上限和下限,以及步长;旋转 Dial 可以选择有震动反馈,超过界限后也会有反馈提示,点按 Dial 可以选择...,枚举类型;默认为 Ruler; StepValue - 标志了旋转 Surface Dial 时,每旋转一次对应的数值变化步长;变化时触发 StepValueChanged 事件; EnableHapticFeedback...- 标志了是否允许在旋转 Surface Dial 时的震动反馈; MinValue - 数值变化的最小值;默认为 -100; MaxValue - 数值变化的最大值;默认为 100; EnableTapToNextControl...设置数值最小值和最大值; 然后我们看几个全局静态变量: _controller - RadialController 类型,是 Surface Dial controller 实例;  Controller...,如果允许最大最小值区间限制,则判断是否越界后设置数值;如果 Text 不是数值,则设置默认值 0.0; private static void Controller_RotationChanged(RadialController

1K80

听GPT 讲Rust源代码--librarycoresrc(5)

这些枚举值与数值的组成部分一一对应,使得整个数字的格式化结果能够被正确构建。...此外,它还定义了一些与f32类型相关的方法,如四舍五入、向上取、向下取等方法,以便更方便地操作f32类型的数值。...除此之外,f32.rs文件还实现了一些特殊的方法和函数,以便于处理f32类型的数值,如浮点数的指数表示法、浮点数的解析(字符串到f32类型的转换)等。...结构体中的字段和方法用于设置和获取FPU控制字的不同位,包括舍入模式、浮点数异常标志等。...,用于表示浮点数的各种标志(如溢出标志、除零标志等); FPUControlWord结构体的方法包括: new():用于创建一个新的FPUControlWord结构体实例; get():用于硬件中读取当前的

17720

c-3

也就是说,基本数据类型是自我说明的)     ××× 字符形 实型(浮点型)   枚举类型                 单精度 双精度 构造类型: (是根据已定义的一个或多个数据类型用构造的方法来定义的...空类型 : (调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。其类型说明符为void。)...:八进制常数必须以0开头,即以0作为八进制数的前缀。...3) 十六进制常数:十六进制常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。...长整数158L和基本常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。

57630

C语言入门系列之2.数据类型、运算符和表达式

空类型 在调用函数值时,通常应向调用者返回一个函数值,这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明。...它们可与数据类型结合起来分类,例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。 在程序中,常量是可以不经说明而直接引用的,而变量则必项先定义后使用。...3.整型数据 整型常量的表示方法 整型常量就是常数。 在C语言中,使用的常数有八进制、十六进制和十进制三种: 十进制常数 十进制常数没有前缀,其数码为0-9。...指数形式 由十进制数、阶码标志“e”或“E”和阶码(只能为整数,可以带符号)组成。...E之前无数字) -5 (无阶码标志) 53.

2.1K10

【C++】入门到精通第一弹——基础知识

格式控制函数 1)long setf(long f);根据参数f设置相应的格式标志,返回此前的设置。...该参数f对应的实参为无名枚举类型中的枚举常量(又称格式化常量),可以同时使用一个或多个常量,每两个常量之间要用按位或操作符连接。...如需要左对齐输出,并使数值中的字母大写,则调用该函数的实参为太ios::left|ios::uppercase 2)long unsetf(long f);根据参数f清除相应的格式标志,返回此前的设置。...若返回数值为0,则表明没有为刚才输出的数值设置输出域宽。输出域宽是指输出的值在流中占有的字节数。...5)setiosflags(long f);设置f对应的格式标志,功能与setf(long f)成员函数相同,在输出该操作符后返回的是一个输出流。

19950

​重学Javascript之数据类型

Number类型 在Javascript,数值类型包括整数、浮点数。不管是什么类型,在js中都是使用64为来存储数值。这些数值因为分为正数和负数,因此64位内存既要用来存储正数,也要能存储负数。...js能表示的最小数值 NaN: 代表一个计算错误。...[image.png] 数字的摄入操作 Math.floor()  向下取 Math.ceil()  向上取 Math.round()   就进取 Math.trunc()   移除小数点后的所有内容...[image.png] [image.png] 字符串转换成数字 parseInt() parseFloat() 在这里,他们接受一个字符串,字符串中第一个数字位开始读取,直到遇到一个非数字位。...propertyIsEnumerable(proname) : 当前对象的属性能不能通过for-in来枚举。 Symbol 主要用于定义唯一的标识符。

1.2K00

java | 深入理解Java枚举类型(三)

个bit位置,为了演示方便,我们这里假设第?个元素中的?...当然有添加操作,那么就会有删除操作,删除操作过程与添加类似,只不过删除是把相对应的bit位设置0,代表不存在该数值。...RegularEnumSet使用一个long类型的变量作为位向量,long类型的位长度是64,因此可以存储64个枚举实例的标志位,一般情况下是够用的了,而JumboEnumSet使用一个long类型的数组...图示演示过程如下,注意universe数组在EnumSet创建时就初始化并填充了所有可能的枚举实例,而elements值的第n个bit位1时代表枚举存在,而获取的则是universe数组中的第n个元素值...,我们需要把它们遍历展示出来,下面的第一个枚举元素的获取过程,显然通过unseen & -unseen;操作,我们可以获取到二进制低位开始的第一个1的数值,该计算的结果是要么全部都是0,要么就只有一个1

92130

入门干货:《权力的游戏》战斗场景中搞懂数据抽样和过滤

抽样的随机性上来看抽样可以分为随机抽样、分层抽样、群抽样和系统抽样,下面依次对这些方法进行介绍。...加权抽样 首先来解释加权:加权是通过对总体中的各个样本设置不同的数值系数(即权重),使样本呈现希望的相对重要性程度。 那么在抽样时为什么要加权呢?...分层抽样要求各层之间的差异很大,层内个体或单元差异小,而群抽样要求群与群之间的差异比较小,群内个体或单元差异大;分层抽样的样本是每个层内抽取若干单元或个体构成,而群抽样则是要么群抽取,要么群不被抽取...▲分层采样字段设置 ? ▲随机采样参数设置 ? ▲分层采样参数设置 点击运行,阿里云平台开始运行各实验节点。完成后,运行成功节点会出现绿色对勾标志。失败节点会显示红叉标志。...▲随机抽样结果 抽样结果看出,加权抽样依赖权重列数值的权重大小进行抽样;分层抽样根据分组列,先对数据进行分组,然后在每个组中进行抽样;随机抽样就是按照抽样比例,对数据进行抽样。

1.1K10

【STM32H7教程】第21章 STM32H7的NVIC中断分组和配置(重要)

此章节非常重要,初学者经常在这里犯迷糊,因此很有必要明白。...答案:不是的,它们是在同一个NVIC下面设置的。 掌握了这些基础知识基本就够用了。另外特别注意一点,配置抢占优先级和子优先级,它们合并成的4bit数字的数值越小,优先级越高,这一点千万不要搞错了。...函数参数: 1、  第1个参数IRQn是中断号,由IRQn_Type定义的枚举类型,原始定义在stm32h743x.h。...函数参数: 1、第1个参数IRQn是中断号,由IRQn_Type定义的枚举类型,原始定义在stm32h743x.h。...比我们配置寄存器basepri(对于STM32H7,范围0-255)的数值为16,所有优先级数值大于等于16的中断都会被关闭,优先级数值小于16的中断不会被关闭。

1.2K30
领券