优先考虑 nameof

简介: 优先考虑 nameof

在分布式场景中,我们经常需要进行多个系统之间的通信,要实现这些通信往往需要不同的库对相应的需求进行处理。这些库为了实现跨平台和跨语言的兼容性往往利用数据名称和字符串来运行,但是这么做就会出现类型安全问题,并且大部分工具也无法支持。

针对前面所述的问题, C# 6.0 中新增了 nameof 表达式,这个表达式可以根据变量来获取包含其名称的字符串,从而使开发人员不需要将变量名称写成字符串。使用 nameof 的好处有如下两点:


  1. 如果属性名改变了,那么相关的参数也会改变;
  2. nameof 会根据符号找出表示这个符号名称的字符串,其中所说的符号可以是类型、变量、接口或者命名空间。在 nameof 面对各种各样的符号的时候,表现出了协调一致的特征,不管变量是使用完全限定方式传递的还是其他的方式,它总是返回局部名称。


同样 nameof 也存在需要注意的地方,当我们针对泛型使用它时,我们的泛型类必须是封闭的,开发人员必须把每个类型参数显示制定出来。


在 C# 中部分异常类型可接受 string 参数,这可以让开发人员将引发异常的变量名作为参数传递出去。例如当我们检测到某个参数为空时需要抛出异常可以这么做:

throw new ArgumentNullException(nameof(para),"参数类型为空");-

这么写的好处是静态分析工具可以检查是否把引发异常的变量名放置在了正确的位置上。


敬告:本篇文章首发于 喵叔的CSDN博客,未经授权任何网站、公众号、App 不允许转载,授权的网站、公众号、App 需明确标识本篇文章地址。需转载请联系 494324190@qq.com

目录
相关文章
|
29天前
|
存储 编译器 程序员
结构体对齐规则对程序的性能有何影响?
结构体对齐规则是指编译器为了提高内存访问效率,按照特定规则在内存中分配结构体成员的位置。合理的对齐能减少内存访问次数,提升程序运行速度;反之,不当的对齐可能导致内存浪费和性能下降。
|
2月前
|
算法 调度
作业调度算法_先来先服务算法_短作业优先算法_高响应比优先算法
本文介绍了作业调度算法,包括先来先服务(FCFS)、短进程优先(SJF)和高响应比优先(HRRN)算法。通过分析进程的到达时间和所需CPU服务时间,计算进程的开始时间、完成时间、平均周转时间和平均带权周转时间,以评估不同算法的性能。FCFS适合长作业,SJF适合短作业,而HRRN则综合了两者的优点。
92 12
|
3月前
|
监控 负载均衡 算法
线程数突增!领导说再这么写就GC掉我:深入理解与优化策略
【8月更文挑战第29天】在软件开发的世界里,性能优化总是开发者们绕不开的话题。特别是当面对“线程数突增”这样的紧急情况时,更是考验着我们的技术功底和问题解决能力。今天,我们就来深入探讨这一话题,分享一些工作学习中积累的技术干货,帮助大家避免被“GC”(垃圾回收,也常用来幽默地表示“被炒鱿鱼”)的尴尬。
48 2
|
5月前
|
运维 Serverless 数据处理
函数计算产品使用问题之设置了两个路由,如何设置优先级
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
算法 调度 C++
【OSTEP】进程调度: 介绍 | Convoy护航效应 | 最短任务优先(SJF) | 最短完成时间优先(STCF) | 轮转 RR | 结合I/O
【OSTEP】进程调度: 介绍 | Convoy护航效应 | 最短任务优先(SJF) | 最短完成时间优先(STCF) | 轮转 RR | 结合I/O
151 0
|
iOS开发
iOS多线程之NSOperationQueue-依赖、并发数、优先级、自定义Operation等最全的使用总结
iOS多线程之NSOperationQueue-依赖、并发数、优先级、自定义Operation等最全的使用总结
478 0
|
算法 Java 调度
短作业优先(SJF)调度算法(Java实现)
短作业优先(SJF)调度算法(Java实现)
短作业优先(SJF)调度算法(Java实现)
|
监控 Java 应用服务中间件
系统gc后线程数增加原因分析过程
问题&现象1、由于系统过一段时间(四五天)commited old区会增大,我们应用中增加每天凌晨一次主动fullgc的任务,但是观察下来发现每天经过system.gc后线程数会增加几个,一直增加到接近300不会增加,并且增加的线程为守护线程。监控图如下:2、某些机器偶然出现线程数陡增情况:分析第一反应为fullgc时会新建gc线程去处理,但是通过jstack指令监控两天的线程变化发现,g
|
算法 调度 C++
高响应比优先调度算法和短作业优先调度算法
高响应比优先调度算法和短作业优先调度算法
416 0
高响应比优先调度算法和短作业优先调度算法