因为篇幅很短,所以尝试全文字写法。几分钟看完的文字也没必要用十几分钟写完是吧。

Attribute(特性标签)是C#中非常有用的一个特性,有用到什么程度呢?以至于C++的很多开发者,都通过自己的预处理器和标签来增加这个功能(典型的如Qt和Unreal)

1.
在各种开发中,我们经常需要使用枚举来代表一组特性,同时又需要一些文字描述,这些描述可能是路径,或者是字符串,两者是一一对应的。

比如,我定义了一组材质,每个对应不同的文件加载路径。或者我定义了一组数据类型,每个对应不同的字符串简写。

我们自己写的数据导出工具中,就有这种写法。我在枚举中设定了很多导出类型,如IntArray,FloatArray等,但是我想要在对应的地方,把这些类型输出为字符串的简写,如IntArray输出为"Int[]",FloatArray输出为"Float[]"。要完成这一点,两者需要一个简单的对应关系。

如何做呢,可以做成Dictionary,也可以写class,或者做成外部Config,方法很多,但是这些写法都有一个问题,就是太罗嗦,内聚性不够。

2.
C#中,我们可以使用Description标签,把需要绑定的字符串内容填写进去,然后写一个函数,在需要的时候,把枚举的这个Description抓出来就行了。

之前的写法,你需要至少一组枚举值和一个查找表,如果你用class或外部config,你要写更多东西。

这种写法下,你只需要一组带Description标签的枚举就行了。那个抓取函数是提前写好的,可以重复使用。代码非常清晰简洁,内聚很高。至于效率什么的我不担心,毕竟我的应用领域,C#这种写法一般都是小型的初始化,花上一点代价,让代码更清晰是值得的。

转载于:https://blog.51cto.com/goldlion/2158240

【C#懒蛋编程——5分钟经验分享】03使用Description特性标签,简化查找表编写相关推荐

  1. 【C#懒蛋编程——5分钟经验分享】02使用partial关键字,分离代码

    因为篇幅很短,所以尝试全文字写法.几分钟看完的文字也没必要用十几分钟写完是吧. C#中的partial关键字,是一个非常有用的东西,尤其是在代码组织方面. 1. 每一个项目都会构建大量的class文件 ...

  2. 【C#懒蛋编程——5分钟经验分享】01逆序遍历删除,防止迭代器失效

    因为篇幅很短,所以尝试全文字写法.几分钟看完的文字也没必要用十几分钟写完是吧. foreach遍历List操作很方便,这节省了部分[]取数据和下标计算的代码.写起来很简洁.但是如果是遍历删除的话,你会 ...

  3. 【比赛经验】陈成龙博士Kaggle计算机编程竞赛数据挖掘经验分享

    来源:腾讯广告算法大赛(ID:TSA-Contest) 作者简介 陈成龙, 2015 年博士毕业于中山大学,研究图像篡改检测,在图像领域顶级期刊IEEE TIP上发表论文2篇,Kaggle Crowd ...

  4. UG编程老师傅纯经验分享,通过面铣来实现黄线加工的设置方式

    今日来讲一讲用面铣来完成黄线加工的设置方法,其实面铣和平面铣的设置是大同小异的,咱们先看下图的黄红加工刀路 黄线能够加工圆形或方法或异形工件都OK,只需你的机台支持走黄线,下面咱们来看下在面铣加工中详 ...

  5. 哈理工第一节编程课及经验分享

    1.学习的第一个代码 #include <iostream>                                                #include <cdt ...

  6. mysql 索引修复_mysql数据库索引损坏及修复经验分享

    推荐:Windows Server 2003 下配置 MySQL 集群(Cluster)教程这篇文章主要介绍了Windows Server 2003 下配置 MySQL 集群(Cluster)教程,本 ...

  7. ❤️大学三年沉淀,把我的学习经验分享给你,爆肝万字带你走进编程世界!❤️

    Hello,大家好,我是Alex.时光匆匆,暑假过的很快,转眼又到了大学的开学季,我也是又混进了我们学院的新生群,发现大家对计算机充满着迷之向往,啊哈哈哈,不过没有人带着入门还是很容易走弯路的哦,今天 ...

  8. 漫谈程序员(五)20年资深程序员编程经验分享

    20年资深程序员编程经验分享 原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务.生物技术.房地产.医疗.保险和公 ...

  9. 想学python编程-【经验分享】新手如何快速学好Python?

    原标题:[经验分享]新手如何快速学好Python? 什么样的人适合学习编程?到底Python作为编程入门语言合适吗?学习Python编程,我们应该如何学?大概的学习内容包括哪些? 今天我们就用一篇文章 ...

最新文章

  1. Lucene 对文档打分的规则整理记录
  2. webSQL 实现即时通讯
  3. 概率统计:第三章 多维随机变量及其分布
  4. 【ArcGIS微课1000例】0006:创建随机点(Create Random Points)
  5. Deepin系统手动安装oracle jdk8详细教程
  6. php解析目录函数怎么用,PHP中目录解析函数
  7. (15)FPGA面试技能提升篇(TDD-LTE协议、GTX IP)
  8. mysql 浮点型详解 简书_MySQL数据类型;基本操作
  9. vue微信、支付宝支付
  10. SQLserver常用创建表 添加字段sql
  11. matlab插值:拉格朗日插值
  12. Java实现:挖金矿问题
  13. lync2010服务器暂时无法使用,lync 2010音频服务无法启动问题
  14. 解决 “Windows 功能” 没有Hyper-V
  15. 电脑操作手机scrcpy软件
  16. 计算机技术对艺术设计的意义,解析数字艺术对艺术设计的影响论文
  17. 视频号添加任意小程序
  18. 高级加密标准 (AES) 和安全断言标记语言 (SAML) 的 Web 安全
  19. 真实生活的记录:我三年的外企生涯(1)出处:天涯虚拟社区
  20. 解析VCARD文件(vcf格式)导入QQ通讯录功能

热门文章

  1. 自定义通信协议设计之TLV编码应用
  2. 2018美团CodeM 题解
  3. 数字化车间数字孪生在线3d地图数据可视化定制
  4. “你的下一个显示器,可能是个充电宝!”
  5. MASM32连接程序时error A2006: undefined symbol : u
  6. Python 利用聚类算法对图片进行颜色压缩
  7. MySQL十表联查快速得到结果_MySQL-第十篇多表连接查询
  8. 制作一个简单HTML电影网页设计(HTML+CSS)
  9. Docker练习安装
  10. LATEX数学公式教程