我们经常会看到一些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也会被这样的描述,这样在反射的时候就可以区分别的类了。

C#方法名前的方括号作用相关推荐

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

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

  2. go语言中func后、函数名前的参数作用

    例如: func (s *Reader) StringFromFile() string { -- } 这里的(s *Reader)其实是类的成员的定义,Reader为struct类型. type R ...

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

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

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

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

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

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

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

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

  7. 函数名前加static与不加static的区别

    函数名前有无static关键词修饰的区别 引入 static修饰特点 代码示例 代码1(对应第1点) 代码2(对应第2点) 代码3(对应第3点) 总结 引入 在定义函数时,前面有时会有static关键 ...

  8. 调用函数时在函数名前加“(void)”

    在定义函数时,加在函数名前的"void"表示该函数没有返回值.但在调用时,在函数名前加"(void)"的作用又是什么呢? 最明显的一点就是表示程序并不关心调用该 ...

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

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

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

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

最新文章

  1. 如何在SharePoint2010中添加Deep Zoom Image
  2. python电脑配置要求cpu-python指定cpu使用率,与内存占用率
  3. RuntimeError: The full_object_detection must use the iBUG 300W 68 point face landmark style.
  4. 机器人学习--路径规划算法
  5. jax-rs/jersey_JAX-RS 2.1的Jersey客户端依赖性
  6. 防御DDoS 攻击的方法
  7. Linux进阶之Jenkins持续集成介绍及安装演示
  8. 用 python 画散点图与气泡图
  9. CSDN获取C币方法
  10. 移动APP开发框架盘点
  11. 操作系统 哲学家进餐问题
  12. 物联网控制APP入门专题(一)---做物联网APP的几个模式简介
  13. 使用ls筛选某一天的文件
  14. php点击同一个按钮实现正序倒叙,php foreach正序倒序输出
  15. VS2015 C++ 海鼎MPOS更新程序
  16. 公司董事长——50w年薪程序员从顶端到谷底,一个APP从启动到主页面显示经历了哪些过程
  17. 2019华为软件精英挑战赛
  18. 在java中使用jython
  19. CocosCreater 教程(上)
  20. IDL下高分二号完整预处理代码

热门文章

  1. AP 计算机 真知源自实践,盛誉源自读者;孜孜不倦,止于至善---林振营老师编著的中国第一套 AP计算机教材学生评价
  2. 自适应数字加密/收藏品NFT市场网站HTML5模版
  3. Anaconda添加清华镜像源
  4. 量子力学 or 线性代数(六——动量、能量)
  5. VirtualBox简单使用
  6. 【果壳笔记】生物信息学——王秀杰老师部分
  7. 使用VSCode拉取代码报错would clobber existing tag
  8. 手机定位--GPS定位,基站定位,辅助定位
  9. python 语音转文字_音频转文字这种刚需,我用python写了个软件,免费不限时
  10. android studio 使用xml:app命名空间代码不提示问题