我们经常会看到一些C#代码的方法名前有一个方括号,里面有一行文字,如:
1、序列化:
[Serializable]
public void 方法名(){...}
2、WebServices方法:
[WebMethod]
public void 方法名(){...}
3、Ajax(AjaxPro)方法:
[AjaxPro.AjaxMethod]
public void 方法名(){...}
4、其他还有很多,如Duwamish7里的:
[Browsable(false)]
public void 方法名(){...}
请问这些方括号干嘛用的呀?编译器怎样处理它们的呀?如何应用?

MSDN解答:

Attribute 类将预定义的系统信息或用户定义的自定义信息与目标元素相关联。目标元素可以是程序集、类、构造函数、委托、枚举、事件、字段、接口、方法、可移植可执行文件模块、参数、属性 (Property)、返回值、结构或其他属性 (Attribute)。

属性所提供的信息也称为元数据。元数据可由应用程序在运行时进行检查以控制程序处理数据的方式,也可以由外部工具在运行前检查以控制应用程序处理或维护自身的方式。例如,.NET Framework 预定义属性类型并使用属性类型控制运行时行为,某些编程语言使用属性类型表示 .NET Framework 公共类型系统不直接支持的语言功能。

所有属性类型都直接或间接地从 Attribute 类派生。属性可应用于任何目标元素;多个属性可应用于同一目标元素;并且属性可由从目标元素派生的元素继承。使用 AttributeTargets 类可以指定属性所应用到的目标元素。

通俗回答一:特性,用于程序集、类、方法、属性、事件、字段、参数、返回值等的自描述
编译器将特性像狗皮膏药一样贴在目标上,以便于其他程序通过反射查找这些信息
(有的特性是Clr直接处理的,比如Serializable、MethodImpl等)

通俗回答二:就是用来描述该方法所具有的属性,这些类都是通过Atrrbuite类的派生类,
有些Class也会被这样的描述,这样在反射的时候就可以区分别的类了。

转载于:https://www.cnblogs.com/PocketZ/archive/2011/09/19/2181669.html

C#方法名前的方括号是干嘛用的呀?相关推荐

  1. Python中的方法名前加下划线

    在Python中,方法名前加下划线通常有以下几种用法和约定: 单个前导下划线(_methodName):这是一种约定,用于指示该方法是类的内部使用方法,应该被视为私有方法.虽然在语法上并没有强制限制, ...

  2. VS中的方法名前的引用去掉

    前言 VS中的方法上面默认提示引用(如下图),看着让人觉得代码散,而且这个提示可有可无,于是决定将这个提示去掉. 步骤如下: 工具→选项→文本编辑器→所有语言→CodeLens→去掉√. 上机操作: ...

  3. 下载数据库名前加“#”方法

    数据库名前加"#" 只需要把数据库文件前名加上"#",然后修改数据库连接文件(如conn.asp)中的数据库地址.原理是下载的时候只能识别"#&quo ...

  4. c#方法前的方括号--特性

    1.序列化: [Serializable] public void 方法名(){...} 2.WebServices方法: [WebMethod] public void 方法名(){...} 3.A ...

  5. 第20条:为私有方法名加前缀

    本条要点:(作者总结) 给私有方法的名称加上前缀,这样可以很容易地将其同公共方法区分开. 不要单用一个下划线做私有方法的前缀,因为这样做法是预留给苹果公司用的. 一个类所做的事情通常都要比从外面看到的 ...

  6. Spring-AOP 静态普通方法名匹配切面

    文章目录 概述 实例 概述 StaticMethodMatcherPointcutAdvisor代表一个静态方法匹配切面,它通过StaticMethodMatcherPointcut来定义切点,并通过 ...

  7. php 调用变量方法名,php中引用(变量和函数名前加符号)用法

    本文章来给大家介绍在php中我们常看到在在php变量前面加个&符号,这个就是php中引用符号了,它可以用于各种变量.函数.对象了下面我来给各位详细介绍php&符号用法.在 PHP 中引 ...

  8. SpringBoot使用SpringDataJPA通过方法名查询

    文章目录 JPA方法名查询 1. 方法名表图 2. 举例说明 3. 测试 JPA依赖及配置在这篇文章: SpringBoot框架使用SpringDataJPA JPA方法名查询 约定方法名一定要根据命 ...

  9. 属性名前两个字母要么都是大写的要么都是小写的(当然数字与_、$算小写)

    属性名前两个字母要么都是大写的要么都是小写的(当然数字与_.$算小写) 2015年08月09日 16:44:42 DO IT 阅读数:1079 标签: java属性名 关于属性名 "属性名前 ...

  10. C++ 函数名前的 ''

    函数名前的 '&' 可以让你用 &函数名() 的方式获取返回值的地址.这种方法可不等同于新创建一个变量,用这个变量接收返回值,然后再用 &变量 的方式获取地址(我们都知道新创建 ...

最新文章

  1. 2021年中国工业互联网安全大赛核能行业赛道writeup之usb流量分析
  2. YUV2RGB源码详解(参考Opencv4.1)
  3. 一行指令造成 60 亿美元蒸发,更让 Facebook 遭遇史诗级故障!
  4. xargs 和 exec详解
  5. OAuth和OpenID的区别
  6. MQ监听 linux,RabbitMQ的安装,配置,监控
  7. 自定义选中文字背景色
  8. Kafka Streams简介: 让流处理变得更简单
  9. [导入]Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载]...
  10. python 多线程,进程的理解
  11. (二十二)访问者模式详解(伪动态双分派)
  12. 【WiFi】WiFi 6E
  13. 【日常篇】006_从黑体辐射到RGB——如何定量计算光谱的颜色?
  14. 99 年妹子开发吊打 x 度网盘的开源神器!
  15. SigFox Vs. LoRa:技术和商业模式之间的比较
  16. Calcite原理和代码讲解(一)
  17. 冒泡排序--咕噜咕噜
  18. 3dsmax展UV,制作UV贴图,将物体的贴图放到一张图片上,贴图优化方式,UVW贴图制作全流程
  19. 51、PIC、AVR、16、32-BIT系列单片机区别与特点
  20. ubuntu14.04安装谷歌输入法

热门文章

  1. 【C语言】有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出,问最后留下的人是原来第几号。
  2. SUMX2MY2函数,你知道什么意思吗?
  3. 怎样将jpg、png制作成windows桌面ico图标文件
  4. git的push rejected报错
  5. private的使用
  6. 简单系统U盘制作 / 安装系统
  7. 关于Flutter应用程序的AndroidX兼容性
  8. git init报错Reinitialized existing Git repository
  9. 郭德纲相声清晰版 高速下载【全部更新】
  10. 宽带猫、路由器、交换机的作用与区别是什么?