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

巧用枚举类型,实现项目的多语言切换

在项目程序中实现多语言,有多种方式,而枚举类型的多语言处理,是比较头疼的问题。...比如有下面这个枚举类型: public enum MySex { Women = 0, Man = 1 } 如果想在界面上输出这个枚举项,直接的做法如下处理...有,就是定义一个中文的枚举类型: public enum MySex { 女 = 0, 男 = 1 } 但是,这样在项目中同时定义了2次性别枚举类型,...枚举方式的多语言问题,是不是很简单? 如果是爱思考的同学,可能会问,我修改了包含枚举类型定义的程序集的条件编译符号,为何主程序可以正常使用而不报错?...这就涉及到编译器对枚举类型的处理行为了,枚举类型在编译时,是直接替换成枚举项的值的,所以使用枚举类型的时候,是不能随意更改枚举项的顺序和值的,也不能随意减少枚举项目,否则可能出现错误。

1.1K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .Net 项目代码风格参考

    C#代码风格要求 注释 类型、属性、事件、方法、方法参数,根据需要添加注释。 如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;否则需要添加注释。...唯一可以使用中文的地方是枚举的枚举项,枚举项实际已经不属于本节标题的范畴了。这里只是放到一起说明,如下图所示: ?...一个.cs源文件至多定义两个类型 如果两个类型的关系是紧密相关的,比如 产品、产品类型,此时Product类,和ProductType枚举可以定义在同一个Product.cs文件中。...内联式样式的比例不超过样式表代码总量的30% 内联式样式为写在中的样式,如下图所示: ? 内联式样式,不能 写在之间。...内联式代码占JavaScript的总量不得超过40% 内联式代码是指写在或者之间的代码: ?

    1.1K20

    纯血鸿蒙APP实战开发——自定义安全键盘案例

    自定义键盘布局键盘枚举类型:键盘类型分为数字键盘,大写、小写键盘,特殊字符键盘键盘按键类型分为输入操作INPUT、删除操作DELETE、切换数字键盘操作NUMERIC、切换大小写键盘CAPSLOCK、切换数字键盘...SPECIAL共五种类型/** * 键盘类型枚举 */export enum EKeyboardType { NUMERIC, //数字键盘 UPPERCASE, // 大写字母键盘 LOWERCASE..., // 小写字母键盘 SPECIAL, // 特殊字符键盘}/** * 键盘按键类型枚举 */export enum EKeyType { INPUT, // 输入类型,输入具体的值...DELETE, // 删除一个输入字符 NUMERIC, // 切换数字键盘 CAPSLOCK, // 切换大小写键盘 SPECIAL, // 切换特殊字符键盘}在真实业务场景下,自定义安全键盘数据包括值...this.curKeyboardType = EKeyboardType.NUMERIC; this.items = numericKeyData; } break; // 切换大小写

    12120

    C编程规范整理

    所有类型命名——类、结构体、类型定义(typedef)、枚举——使用相同约定。 变量命名。...枚举命名。枚举值应全部大写,单词间以下划线相连:MY_EXCITING_ENUM_VALUE。枚举名称属于类型,因此大小写混合:Ur1Tab1eErrors。 宏命名。...后面括号里加上你的大名、邮件地址等,还可以加上冒号:,目的是可以根据统一的TODO格式进行查找: 全局变量要有较详细的注释,包括对其功能、取值范围以及存取时注意事项等的说明。...文件头、函数头、全局常量变量、类型定义的注释格式采用工具可识别的格式(如doxygen)。 ? 相对独立的程序块之间、变量说明之后必须加空行。...多个短语句(包括赋值语句)不允许写在同一行内,即一行只写一条语句。 使用断言记录内部假设。不能用断言来检查运行时错误。 确保所有字符串是以NULL结束。 ?

    83020

    iOS开发·必会的算法操作:字符串数组排序+模型对象数组排序

    查看定义如下: typedef NSComparisonResult (^NSComparator)(id obj1, id obj2); 这个block体返回的NSComparisonResult 是一个枚举类型...为了设置这个NSComparator 参数的block体,你可以在设置其block体的时候,手动返回一个NSComparisonResult 枚举类型的某个具体值(NSOrderedAscending,...默认区分字母大小写,同一个字符小写在前,大写在后。 字母并非按unicode码的大小升序排列。...国内汉字输入法输入的汉字为全角,字母数字为半角,但是标点则默认为全角,可切换为半角(可以通过输入法工具条上的相应按钮来切换标点符号的全角半角状态)。 日文里面的有汉字,也有片假字。...2.2 NSStringCompareOptions NSStringCompareOptions是一个枚举类型,并非一个类。

    2.1K10

    C语言结构体、联合与枚举类型

    ,这样就会变得很麻烦,如果数据不止这两种,有体重、血型、臂展等等 , 这样数组与数组之间的下标就不再具有关联性。...,重命名要写在大括号之后分号前,之后在使用重命名+结构体变量是不是方便许多了呢?...其实,我上面已经说了,联合体的成员是指向同一片内存空间的,与结构体不同,结构体是每个成员有自己的单独开辟的空间,所以,联合体在使用的时候尽量不要多个成员一起使用,除非使用的成员占用内存大小要小于等于最大成员所占内存空间大小...1.枚举类型的定义 枚举类型的定义非常简单,跟结构体非常相似,使用关键字enum来对枚举进行声明,大括号内的内容为被逗号隔开的枚举的可能取值,这样就完成了枚举类型的声明。...这样以来代码的可读性就变得非常的差了,然而枚举在这用场景下得到了非常好的应用,将所需要的植物用大写英文表示,写在枚举类型里,这样一来使用起来不就简单清晰明了了吗。

    11810

    Java匹马行天下之JavaSE核心技术——Java基础语法

    1.2、变量的特点 必须要有大小 存储一定格式的可变数据 必须要有名字 1.3、变量的声明和赋值 数据类型  变量名 = 值 2、常量 2.1、常量的概述 常量是指在程序运行过程中其值不能改变的量。...给哪条语句进行说明,注释应该写在该语句的旁边。 2. 单行注释一般写在语句的后面多行注释和文档注释一般写在语句的上面          注意:文档注释只能出现在类、属性、方法的上面。...6、数据类型 Java 基本数据类型 变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。...根据java自动类型提升规则,同样道理 char 提升为int 。就把’a’代表的数字体现了出来。a 表示的是97  97+1就是98; 那么 想要查看98 表示的char 是什么 怎么实现呢 ?...一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。

    71620

    WPF 用户控件分享之边上带输入框的圆圈

    在代码隐藏页中添加一个用于控制输入框位置的依赖属性 “TextBoxPlacement”: 【题外话]】添加依赖属性的方法为,输入 “propdp” 然后按 Tab 键(也就是使用官方提供的代码片段),然后修改类型...、修改名称、修改所属类、修改默认值,如下: 继续说回 TextBoxPlacement 属性,我给它的类型是 PlacementMode,这是借用的 Popup 控件的方位属性: 这是个枚举,有很多取值情况...,本次只是用到了它的子集(上下左右): 好了,控制位置的属性有了,那么怎么动态切换呢?...至于四种情况的布局实现,容器都是 StackPanel,左和右的时候是横向的,上和下的时候是纵向的;左和上的时候输入框部分写在前面,右和下的时候输入框部分写在后面。...先来看看圆圈内文本样式,涉及两个依赖属性,一个是文字颜色属性 CircleForeground,另一个是文字大小属性 InfoFontSize(输入框也是用这个设置文字大小的),具体如下: 然后是圆圈和输入框的样式

    1.1K10

    Flutter 全局控制底部导航栏和自定义导航栏的方法

    介绍 导航栏在移动应用中扮演着至关重要的角色,它是用户与应用之间进行导航和交互的核心组件之一。...根据用户偏好切换导航栏:例如,提供一个设置选项,让用户自由选择喜欢的导航栏类型。...通过使用枚举类型和条件判断,我们可以轻松地根据用户的偏好动态切换底部导航栏和自定义导航栏,从而提供更好的用户体验。...方法概述: 我们使用枚举类型来表示不同的导航栏类型,并在应用的根部件中根据用户的选择动态切换导航栏。通过在 build 方法中根据枚举类型选择不同的导航栏实现,我们可以轻松地控制导航栏的显示。...通过定义枚举类型、状态管理和条件判断,我们可以根据用户的选择显示不同类型的导航栏,并且提供一个浮动按钮来切换导航栏类型。

    42510

    数仓链路保障体系与数据测试方法经验分享(好文收藏)

    枚举类型判断:保证枚举字段值都在预期范围之内,防止业务脏数据,导致最终统计结果出现遗漏/多余的数据类型。...,确保不会出现遗漏/多余的枚举类型。...针对不同类型比如数值、String、枚举、日期格式类型,列举出常见的数据判断规则。 给每项规则进行等级划分,比如表的主键不唯一,记为critical。...String类型字段的空值比例大于70%,记为warning。 根据表数据是否满足上述这些规则,最终落地一份可视化报告,测试人员可根据报告内容评估数据质量。...3、 主备策略 遇到有主备切换策略时,测试过程中注意数据正常双写,且通过配置,取数时能在主备数据源之间切换。 4、 数据安全 关注数据查询的权限管控,重点测试横向越权、纵向越权的场景。

    1.6K10

    数据测试方法

    枚举类型判断:保证枚举字段值都在预期范围之内,防止业务脏数据,导致最终统计结果出现遗漏/多余的数据类型。...,确保不会出现遗漏/多余的枚举类型。...针对不同类型比如数值、String、枚举、日期格式类型,列举出常见的数据判断规则。 给每项规则进行等级划分,比如表的主键不唯一,记为critical。...String类型字段的空值比例大于70%,记为warning。 根据表数据是否满足上述这些规则,最终落地一份可视化报告,测试人员可根据报告内容评估数据质量。...3、 主备策略 遇到有主备切换策略时,测试过程中注意数据正常双写,且通过配置,取数时能在主备数据源之间切换。 4、 数据安全 关注数据查询的权限管控,重点测试横向越权、纵向越权的场景。

    1.1K41

    Mycat 核心配置详解

    ,根据枚举值对数据进行分片,例如在异地多活的场景中通过地区id进行数据分片的场景 PartitionByPrefixPattern:字符串范围取模,根据长字符串的前面几位进行取模分片 PartitionByMod...-- 指定mapFile中枚举的数据类型,0为整型;非0则为字符串类型 --> 0 0 Tips:数据节点的索引是从0开始的,在编辑mapFile时需要注意这一点 总结: 可以根据枚举值指定数据存储的位置...注意该取值只在1.4及其以后版本有,1.3没有 writeType 属性指定写实例的负载均衡类型,目前的取值有4 种: -1:表示不自动切换 0:所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个...writeType属性实现根据主从延时来进行主从切换的,其官方文档描述如下: 1.4 开始支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下:MyCAT 心跳检查语句配置为show

    1.5K20

    iOS-HTTP网络框架

    关闭后恢复此设置, APP运行中可根据需要调用switchService切换服务器....另外, 应该提供取消打击的功能以处理不必要的打击的情况, 那么, 根据炮台的作用...., 对于引用类型对象block会生成一个此对象的引用并使该对象的引用计数+1(这里我们只描述非__block修饰的情况)....error.domain通常就是错误提示语(可选), 这就要求程序员写每个API时都定义好错误枚举(所以还是一个API一个类好, 干净)和相应的错误提示.大概是这样子: 通用的错误枚举和提示语定义在一个...你也应该区分不同的业务写出两个不同方法(像上面那样做), 至于公用的部分就只写一次就够了.像这样: 再说一句, 即使你比我还懒, 不声明两个方法那也应该将较短的逻辑写在前面, 较长的写在后面, 易读

    68120

    六、ArkTS 常用组件-按钮(Button)切换按钮(Toggle)文本输出(TextInput)

    六、ArkTS 常用组件-按钮(Button)/切换按钮(Toggle)/文本输出(TextInput) 按钮 1. 概述 2. 参数 3. 常用属性 4. 常用事件 切换按钮 1. 概述 2....options.type options.type为按钮形状,该属性的类型ButtonType,可选的枚举值有 名称 描述 效果 ButtonType.Capsule 胶囊形状 ButtonType.Circle...,一般用于两种状态之间的切换,例如下图中的蓝牙开关。...: boolean }) type type属性用于设置Toggle组件的类型,可通过ToggleType枚举类型进行设置,可选的枚举值如下 名称 描述 效果 ToggleType.Switch 开关...输入框类型 可通过type()方法设置输入框的类型,该方法的参数为InputType枚举类型,可选的枚举值有 基本输入模式 3.2.

    17810

    EasyC++03,谷歌C++代码风格规范

    num_errors; // "num" 是一个常见的写法 int num_dns_connections; // 人人都知道 "DNS" 是什么 这三个变量名的优点也已经写在注释里了...类型命名 类型命名采用大驼峰命名,不包含下划线,如:MyExcitingClass,HelloWorldClass等。...所谓类型命名包括类,结构体,类型定义(typedef),枚举,类型模板参数,它们均使用相同的约定。即大写字母开头,每个单词的开头也为大写,即大驼峰。...变量命名 C++的变量没有像Java一样遵循小驼峰,而是一律小写,单词和单词之间以下划线连接。...枚举命名 与常量或宏一致,即kEnumName或ENUM_NAME。个人更倾向于后者。 参考:谷歌C++编程规范及相关博客

    72020

    重构的些许收获

    入口模块化 项目本身是一个系统合集,用户根据权限的不同会展示不同的菜单导航。目前是有3个部分: 每个模块单独的action、router、reducer与server。...枚举 前端静态枚举值 不允许页面出现以下字样: 1,2,3 ...int类型 '成功','失败',......等字符类型 错误码 ,规范化错误提示 状态值 ,规范前端业务代码 前后端字段映射 前端是驼峰命名法,后端是下划线“_”,所以需要做一个映射,同时也更加方便debug。暂时用如下笨方法。...这一块写在node那层比较好。...编译由服务端统一执行 服务端项目代码自身预编译,提高执行性能、降低部署风险 编译结果统一保存,支持按分支名切换、回滚 Flag 还有很多好玩的东西可以搞,每一次的优化都是对自身的一次重构。

    622100

    【C语言必学知识点六】自定义类型——联合体与枚举

    a共用一块内存空间; 根据结构体的内存对齐规则,结构体的大小为最大对齐数的整数倍,而这里4个成员的对齐数都是1,也就是说结构体的大小就是4; 因此联合体的大小也是4。...联合体中的成员在分配内存空间时都是从起始位置开始分配 联合体的大小是最大对齐数的整数倍 根据联合体的成员共用同一块内存这一特性,可以将联合体用于以下两个方面: 联合体可以用于描述不同事物之间的相互冲突的属性...而在枚举类型中,由于其成员属于被定义的一个常量,因此枚举类型的大小是固定的,如下所示: 可以看到,不管枚举类型中的成员有多少,它的大小都是4。那是不是就是说枚举类型的大小一定是4呢?...2.4 枚举类型的个人理解 现在我们再回到前面的问题,枚举类型的大小是否一定是4? 现在来看这个问题,那答案是肯定的,枚举类型的大小一定是4。...进行声明的一种自定义类型; 枚举类型可以看做是一些有特殊含义的整型常量的集合; 枚举类型的大小为一个整型常量的大小; 枚举类型可以用于声明具有特殊含义的枚举常量; 枚举类型可以用于创建能够存储枚举常量的枚举变量

    6610

    HarmonyOS 开发实践——基于AVPlayer的视频播放

    videoSizeChange用于视频播放,监听视频播放的宽高信息,可用于调整窗口大小、比例。audioInterrupt监听音频焦点切换信息,搭配属性audioInterruptMode使用。...如果当前设备存在多个媒体正在播放,音频焦点被切换(即播放其他媒体如通话等)时将上报该事件,应用可以及时处理。...名称值说明SEEK_NEXT_SYNC0表示跳转到指定时间点的下一个关键帧,建议向后快进的时候用这个枚举值。...SEEK_PREV_SYNC1表示跳转到指定时间点的上一个关键帧,建议向前快进的时候用这个枚举值。SEEK_CLOSEST2表示跳转到指定时间点的最接近的帧,建议精准查找的时候用这个枚举值。...写在最后如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力;关注小编,同时可以期待后续文章ing,不定期分享原创知识;想要获取更多完整鸿蒙最新学习知识点

    27520
    领券