我们知道一个类中的属性应该用名词或名词性短语,方法用动词或动宾短语;但是委托的实例却似乎有一些游离。因为在 .NET 中委托代表的是一个动作,既可以把它看作是名词,也可以看作是动词。在用法上,既可以像属性和变量一样被各种传递,也可以像一个方法一样被调用。

那么委托实例的命名,应该遵循属性和变量的命名,还是遵循方法的命名呢?


委托的实例可以当作属性或者变量使用:

var action = () => Console.WriteLine("walterlv is a 逗比");

委托的实例也可以当作方法使用:

var action = () => Console.WriteLine("walterlv is a 逗比");
action();

于是委托的命名方式迁就名词还是动词呢?

在微软的官方文档 Naming Guidelines 中提到了 .NET 中约定的命名方式。对于委托的命名,实际上只在 Names of Type Members 中提到了,不过提及的实际上是事件型的委托,而不是一般的委托实例。然后,微软其他地方的官方文档中也没有单独提及委托的命名方式。

为了弄清楚第一方代码的命名规则,我去 https://source.dot.net/ 上找了一些使用了委托的代码,然后发现,对于 ActionFunc 系列委托的命名,有以下这些(部分名称只保留了后缀进行合并):

使用名词的:

  • action
  • function
  • callback
  • continuation
  • method
  • factory
  • valueFactory
  • creator
  • valueGetter
  • initializer
  • _target
  • attributeComputer
  • argumentsPromise
  • taskProvider

使用动词的:

  • getSource

使用缩略词的:

  • localInit

我把缩略词单独拿出来,是因为缩写了以下就看不出来这到底是缩自名词还是缩自动词。

基本上可以确定:

委托实例的命名是 —— 一个表示动作的名词


参考资料

  • Source Browser

我的博客会首发于 https://walterlv.com/,而 CSDN 和博客园仅从其中摘选发布,而且一旦发布了就不再更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://blog.csdn.net/wpwalter),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

C# 中委托实例的命名规则相关推荐

  1. python怎么打下划线符号_详解 Python 中的下划线命名规则

    在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后--那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...

  2. C++中头文件的命名规则

    C++中头文件的命名规则,因为C++是从C语言发展而来的,为了与C兼容,C++保留了C语言中的一些规定,其中就包括用.h作为后缀的头文件,比如大家所熟悉的:stdio.h.math.h和string. ...

  3. Linux中存储设备的命名规则

    Linux中存储设备的命名规则 1.以设备名命名 linux对IDE设备以hd命名 linux对SCSI设备以sd命名 2.以分区命名 例如:第一块IDE设备接口磁盘的第 1 个分区地址为 /dev/ ...

  4. C语言用户自定义标识符的命名规则,c语言中用户标识符的命名规则介绍

    c语言中用户标识符的命名规则介绍 发布时间:2020-06-24 15:55:31 来源:亿速云 阅读:116 作者:元一 这期内容当中的小编将会给大家带来有关c语言中用户标识符的命名规则介绍,以专业 ...

  5. Java中的标识符及其命名规则

    标识符的概述 Java中对元素(类 .方法.属性.接口.数组.枚举等)进行起名字使用的字符序列 通俗来讲,标识符就是名字 组成内容 1.所有的大小写英文 2.阿拉伯数字0 - 9 3.引文符号 _ 和 ...

  6. Java中的变量名命名规则

    变量命名规则: 基本要求: 1,首字母:字母,下划线(_)或符号(不能含有空格,不能以数字开头)2,其他部分:数字,字母,下划线,符号(不能含有空格,不能以数字开头)2,其他部分:数字,字母,下划线, ...

  7. c语言中字符串型文件名,C语言中变量名的命名规则

    1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.要求相匹配的大括号在同一列,对继行则要求再缩进4格.例如: 2.提示信息字符串的位置 在程序 ...

  8. python实例变量命名规则_Java,Python的一些命名规范

    Python命名规范 (收藏做笔记用) 1.模块名: 小写字母,单词之间用_分割 如:logging 2.包名: 小写字母,单词之间用_分割 如:logging 3.类名:单词首字母大写 如:pyth ...

  9. EXCEL 2013中“定义名称”的命名规则

    名称可以包含字母.汉字.数字.以及[_][.][?]三种符号. 名称具有唯一性. 名称必须以字母或汉字或下划线_作为开头,不能以数字.字母R.字母C作为开头,并且不能像单元格引用,例如,32和A4都不 ...

最新文章

  1. 一个很适合用来套用后台的框架
  2. JSP proxool+mysql数据库连接池配置
  3. beta book读书俱乐部的构思
  4. iphone以旧换新活动_iPhone:我降价 1600 元!安卓:我有 5G
  5. 【设计】线框图、原型和视觉稿的区别
  6. jqgrid mvc_将JQGrid与Spring MVC和Gson集成
  7. Nancy跨平台开发总结(三)发布到Jexus Web服务器
  8. JDBC如何判断数据库的表是否存在
  9. python滤波器的截面图_Python OpenCV学习笔记之:图像滤波处理
  10. 使用移远EC200N-CN模组PING谷歌
  11. filezilla 设置服务器_MC云服务器搭建教程[非硬核]
  12. golang 对象转json
  13. Cisco.Packet.Tracer思科模拟器练习题
  14. 如何爬取ajax网页之爬取雪球网文章
  15. QT C++ Luhn算法验证银行卡号合法性
  16. 【vue3】vue3+ts+vite项目设置路径别名
  17. nv 9系显卡测试软件,支持全部8、9系显卡物理加速!NV新驱动消息泄漏
  18. FineReport填报--批量删除
  19. MyEclipse8.6注册码代码
  20. Vue中directive的使用

热门文章

  1. JavaScript基础语法ECMA01
  2. Unity3D制作3dRPG游戏——登录系统
  3. Unity3dRPG 相机跟随player旋转_【玩码】升降式旋转镜头来袭:三星A80将于7月12日开始预约...
  4. 苹果手机IAP2协议Lightning转串口uart使用说明
  5. hiai和鸿蒙的关系,HiAI
  6. 隐藏Win10此电脑窗口的6个额外文件夹
  7. 中国数字人民币的研发进展白皮书
  8. Intermec 700 開發體驗(2)
  9. 全能程序员系列(十)--开发人员写不好文档?--Word篇
  10. Unity3D 5 官方教程:地形设置