我们自己做的组件,一般希望它的属性在设计时能够在属性窗里显示为中文,可以在属性上添加System.ComponentModel.DisplayNameAttribute标注达到这个目的。...但是,枚举的选项如何以中文的形式显示在属性窗里呢?...假设我们有如下枚举: 1: public enum MyEnum 2: { 3: A, 4: B 5: } 在某个组件里有一个MyEnum类型的属性...,如下: 1: [DisplayName("我的枚举")] 2: public MyEnum MyEnum 3: { 4: get;set; 5: } 在设计时把这个组件拖到设计器中...3: public MyEnum MyEnum 4: { 5: get; 6: set; 7: } 这样,就可以以中文的形式在属性窗里显示枚举的选项了,如下图:
Enum.7: Specify the underlying type of an enumeration only when necessary Enum.7: 只在必要时定义枚举的底层类型...默认的类型更容易读写。int是默认的整数类型。int和C语言枚举类型兼容。...Note(注意) Specifying the underlying type is necessary in forward declarations of enumerations: 在前置声明枚举时需要定义枚举的底层类型
枚举类型变量的赋值特性: 一个枚举类型如果没有赋初值,则默认值为0。 一个枚举类型如果赋值为nil,同样值为0。...比如说,有这样一个枚举类型: typedef NS_ENUM(NSInteger, PopupType) { PopupTypeNormal = 0, PopupTypeBookInfo...= 1 }; 在调用的时候,代码欲从VC的字典数组 self.resource 中获取某字典 self.resource[indexPath.row] 并取出 type 的键值对,但实际使用时,该字典并不存在键值对...,即 [self.resource[indexPath.row] objectForKey:@"type"] 为空,这时候如果把它传递给枚举类型,所获得到的枚举类型仍为0。...打个断点,可以发现type1和type2的值均为PopupTypeNormal,即第一个枚举类型。
C#内建接口 我们来看一下IConvertible中的元素: 这里边涵盖了C#所有基元类型,以及引用类型,接下来我针对其中几个方法做出演示和解释,请看如下代码: (为了方便截图,我隐藏了用不到的方法以及将部分方法体简化为...注意:建议显式实现该接口,因为在大多数情况下,我们并不需要这些转换方法,在需要的时候,我们可以把实例赋值给IConvertible来获得转换功能。...另外我们可以看到,除了众多的ToXxx方法,还有个返回值为TypeCode的GetTypeCode方法,这个方法官方给出的解释是返回当前实例的类型枚举。...GetType这个方法,则是用于转为一个对象,其第一个参数指定要转换的类型,此处只是转换为另一个IConvertibleTest对象,相当于复制它自己,下面我们在Main方法中调用它们演示一下:...当前,除了string,其它基元类型也有显式实现IConvertible接口,有兴趣的同学可以自己写代码测试,本节不再赘述。 END
什么时候使用is as操作符有一个问题,即它不能操作基元类型。如果涉及基元类型的算法,就需要通过is转型前的类型来进行判断,以避免转型失败。 4、TryParse比Parse好 这个肯定好,不说了。...来确保值类型也可以为null 基元类型为什么需要为null?考虑两个场景: 数据库支持整数可为空 数据在传输过程中存在丢失问题,导致传过来的值为null 写法:int ? i=null; 语法T?...const和readonly的本质区别如下: const是编译期常量,readonly是运行期常量 const只能修饰基元类型、枚举类型或字符串类型,readonly没有限制。...不过,这样做不是因为允许使用的枚举类型在声明时的默认值是0值,而是有工程上的意义。 既然枚举类型从0开始,这样可以避免一个星期多出来一个0值。 8、避免给枚举类型的元素提供显式的值 不要给枚举设定值。...更多的时候,类型的使用者需为类型自定义格式化器,这就是第二种方法,也是最灵活多变的方法,可以根据需求的变化为类型提供多个格式化器。
默认情况下,Newtonsoft.Json 库序列化和反序列化 JSON 到 .NET 类型的时候,对于枚举值,使用的是整数。...然而,在公开 JSON 格式的 API 时,整数会让 API 不易于理解,也不利于扩展和兼容。 那么,如何能使用字符串来序列化和反序列化 JSON 对象中的枚举呢?...Newtonsoft.Json 中自带了一些转换器,在 Newtonsoft.Json.Converters 命名空间下。...其中枚举的转换是 StringEnumConverter,我们只需要将其标记在属性上即可。...DoubiLevel { None, ABit, Normal, Very, Extreme, } } 对于“逗比程度”枚举
刚刚在看>一书的”ENUM类型”一节, 以下面的代码举例, 得出结论: “还可以看出对于不在ENUM指定范围内的值时, 并没有返回警告, 而是插入了enum(‘M’, ‘F’)的第一个值...这个相当于是一个警告信息,在我本地测试的 5.7 中,直接插入会报错,但是使用 ignore 后,数据能被强制插入,但是是空值。...在 MySQL 枚举类型的“八宗罪” 这篇文章的第七条,文中提到了,如果不合法会被处理成空字符串,在后一段中又提到了因为类型的缘故,会根据枚举索引去取值。...在业务实践中,我们通常都是拒绝使用枚举进行数据控制。...ignore可以插入,但是空值; 不添加直接报错”ERROR 1265 (01000): Data truncated for column ‘genter’ at row 1“; 所以,建议开发中尽量不用枚举类型
更重要的是,Verilog 支持用户定义基元 (UDP),因此设计人员可以定义自己的单元基元。此功能对于 ASIC 设计人员来说尤其必要。...ASIC Libraries-VHDL 面向 ASIC 库的倡议)问世,使 ASIC 设计人员能够在符合 VITAL 的 VHDL 中创建自己的单元基元或 ASIC 库,如上图所示。...SystemVerilog 现在广泛用于 IC 验证。...如果在 Verilog 中将 4 位信号分配给 8 位信号会怎样?...VHDL 支持枚举和记录数据类型,允许用户为一种数据类型定义多个信号。Verilog 不支持枚举和记录类型。
在 AWS Lambda 出现之前,FaaS 无需管理基础设施便可根据事件执行代码的概念就已经存在了,不过是缺乏广泛的实施和认可。...在云服务中,实现分布式应用程序的组成、微服务及函数等软件模块的相互连接,以及管理其间的数据流,构造与上述这些功能相一致。...事件过滤:事件源映射可执行事件过滤,控制流或队列中可调用 Lambda 函数的记录。如此一来便无需在函数中编写过滤的逻辑,大大降低了函数的大小和成本。...基元是编程语言中固有的基本数据类型,包含一个基本值(如整数、浮点、布尔或字符)且不包含其他类型。...AWS、Azure、GCP 等超大规模云服务商坐拥大量服务类型和广泛用户群体,是有能力识别新用户的需求和构造。
每个枚举类型默认继承自 System.Enum,属于值类型,但是枚举不能定义任何方法、属性[本质 也是方法嘛]和事件。...实际上枚举被编译时会把其中的每个符号转变为类型的一个常量字段,也就是0,1,2...会被硬编码进去。 而使用这些常量[0,1...]是以定义的字符代替的,以下是IL: ?...这是枚举类型的基础类型每一个枚举都有一个基础类型[只可以是基元类型],C#默认是int。...Enum的静态方法Enum.GetUnderlyingType(Type enumType)返回枚举的基础类型。...myc.ToString("D"));//"2"十进制格式 6 Console.WriteLine(myc.ToString("X"));//"02"十六进制格式 7 8 //将一个文本符号转化为枚举类型的实例
在讨论.NET的类型系统的时候,我们经常提到“基元类型(Primitive Type)”的概念,我发现很多人并没有真正理解基元类型就究竟包含哪些(比如很多人觉得字符串是基元类型)。...从该方法的实现和CorElementType的枚举成员也可以看出,枚举值2-13,外加CorElementType.I(IntPtr)和CorElementType.U(UIntPtr)这14个类型属于基元类型的范畴...如下的类型属于Unmanaged 类型的范畴: 14种基元类型+Decimal(decimal) 枚举类型 指针类型(比如int*, long*) 只包含Unmanaged类型字段的结构体 如果要求泛型类型是一个...Blittable类型要求在托管内存和非托管内存具有完全一致的表示。如果某个参数为Blittable类型,在一个P/Invoke方法调用非托管方法的时候,该参数就无需要作任何的转换。...如下的类型属于Blittable类型范畴: 除Boolean(bool)和Char(char)之外的12种基元类型,因为布尔值True在不同的平台可能会表示成1或者-1,对应的字节数可能是1、2或者4,
因此,往返行程是从XML到对象实例,然后再返回到XML流。 ...枚举类型。枚举(包括标志枚举)是可序列化的。....NET Framework基元类型。...集成到.NET Framework中的下列类型都可以进行序列化,并可视为基元类型:byte、SByte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Single...其他基元类型。这些类型不是.NET Framework中的基元,但可作为采用序列化的XML形式的基元。
---- 自从 P4 语言首次在 ACM CCR 文章中提出以来已经有一段时间了。在过去的时间里,该语言已经从提案演变为规范到现在广泛应用在智能网卡等领域。...这些操作是从一组对数据包字段(算术、读/写、比较、添加/删除字段)进行操作的操作基元构建的。 控制流图:哪些匹配操作表处理数据包,按什么顺序处理?...在业务处理流程中,我们还发现最初的 P4 提案无法表达某些类型的数据包处理。其中之一是等价多路径 (ECMP),这是一种在数据中心中使用的负载平衡机制,用于在一组候选传出链路之间分散流量。...但是,要实现 ECMP,没有从目标地址到输出端口的 1:1 映射。相反,ECMP 输出端口是根据给定流的 5 元组的哈希动态选择的。...如果它们被证明是广泛使用的,它们最终可能会迁移到标准的 P4 库中。总的来说,将一些 P4 结构(如动作原语)移动到库组件中将简化语言核心。
数组的内部工作原理 固定大小的数组 第十五章 枚举类型和位标志 枚举类型 枚举类型(enumerated type)定义了一组“符号名称/值”配对。...它从System.Enum直接派生,枚举类型是值类型,但枚举方法不能定义任何方法、属性或事件。(P320 2)C#编译器将枚举类型视为基元类型。所以可用许多熟悉的操作符(==,!...=,,=,+,-,^,&,|,~,++和–)来操纵枚举类型的实例。(P321 4) 枚举类型的好处有:1、让程序更容易编写、阅读和维护。 2、枚举类型是强类型的。...第二行代码分配了含有100个Int32值的数组,所有Int32都被初始化为0。由于数组是引用类型,所以会在托管堆上分配容纳100个未装箱Int32所需的内存块。...2、将引用类型的元素拆箱为值类型的元素,比如将一个Object[]复制到一个Int32[I中。 3、加宽CLR基元值类型,比如将一个Int32[]的元素复制到一个Double[]中。
--所有.NET Framework 基元类型(如整型和字符串型)以及某些被视为基元的类型(如DateTime和XmlElement)无需做其他任何准备工作就可序列化并被视为拥有默认数据协定 -...-必须为所创建的新复杂类型定义数据协定以便可以进行序列化 --正常情况下可通过将DataContractAttribute属性应用到该类型来完成该任务 --可以将此属性应用到类、结构和枚举 ...4.数据协定已知类型 --数据协定已知类型 --发送的数据协定源自预期的数据协定 --要传输的消息的声明类型是接口,而非类、结构或枚举。 ...--更改数据成员的数据协定 --添加或移除数据成员 --将具有额外字段的类型反序列化为具有缺失字段的类型时,将忽略额外的信息。 ...--具有缺失字段的类型反序列化为具有额外字段的类型时,额外字段将保留其默认值,通常为零或null.
实际上,机器学习专家们很乐于指出的一点是:如果你能把机器学习问题转化为一个简单的数值优化问题,你就几近成功了。 当然,现实的问题是,很多机器学习项目是没法简化成一个简单的优化问题的。...基元辨识与构建 第一步就是创建基础部件(基石).机器学习流程往往用图来描述和表达,AMPLab研究人员一直专注于针对大数据集的图节点(机器学习流程基础元件,简称基元)的扩展和优化。...其中一些基元可能针对于特定领域和数据类型(例如文本,图像,声音,时空数据),一些则是针对于更加通用场景的领域(例如统计学,机器学习).最近的一个例子是ml-matrix矩阵库,该库是一个运行于Apach...现如今,工作流工具已经变得越来越普遍,而且诸如此类的工具已经有很多可供数据工程师,数据科学家,甚至商业分析师等使用(例如Alteryx, RapidMiner, Alpine Data, Dataiku...虽然诸如scikit-learn 和 GraphLab已经提供了对机器学习流程构建的支持,但是像Apache Spark这种常用的分布式框架则把这种思想发挥到了极致,以使其能偶适应于更大的数据集,更广泛的人们受益
以数据块模式写入的基元数据被规范化为不超过1024字节块。此更改的好处是加强了 Stream 中序列化数据格式的规范。这种变化是完全前后兼容的。...`** 表示一个Enum类型的数据,==TC_ENUM==为枚举类型的标识,表示接下来的序列类型是枚举类型,classDesc为一个枚举类型的类描述符,newHandle为该枚举对象的引用...,enumConstantName的值为调用枚举类型中的name()方法返回的枚举类型的值对应的字符串字面量; enumConstantName: `(String)object...默认情况下,在JDK 1.2中将Externalizable对象写入stream的协议。...如果写入 stream 的类是枚举类型,则会设置标志SC_ENUM。接收方的对应类也必须是枚举类型。
来确保值类型也可以为null 建议6、区别readonly和const的使用方法 建议7、将0值设为枚举的默认值 建议8、避免给枚举类型的元素提供显式的值 建议9、习惯重载运算符 建议4...、TryParse比Parse好 如果注意观察,除string之外的所有的基元类型。...来确保值类型也可以为null 基元类型为什么需要为null?需要考虑以下两个场景: 1、数据库中一个int字段可以被设置为null。...所以建议将0设置为枚举的默认值。 建议8、避免给枚举类型的元素提供显式的值 一般情况下,没有必要给枚举类型的元素提供显式的值。创建枚举的理由之一,就是为了代替使用实际的值。...不正确的为枚举类型的元素设定显式的值,会带来意想不到的错误。
领取专属 10元无门槛券
手把手带您无忧上云