C#重点语法——特性
特性的基本理解
*************************************************************************************
一.含义
特性是一种声明性标签。(类,方法,结构,枚举,组件)
二.使用方法

第一个参数表示添加的目标,说明这个特性加到什么样的数据上面(可以指定加到类,构造函数,字段,方法,属性)

第二个参数表示可以在同一个对象上加上多个特性。
第三个参数如果为true表示该特性可以被派生类继承。这里注意这里的Inherited如果为true,作用于的是子类,对目前本身的类没有影响,对子类有作用。
注意如果加上特性后,提示要这个只对特性类有效,说明在要注明的类需要继承Attribute类。可以把特性理解为一个构造函数。因为在特性上按F12建进去后其实跳入的是构造函数。
在使用特性时可以省略后面的Attribute
了解一个特性【obsolete()】(表示过时的特性),这个()可写可不写,不写的话也默认就是无参构造,里面也可以传参,这样可以起到提示作用。

具体其他的用法可以看他的定义。

可以打开摘要去看具体的含义,比如那个第三个构造函数,如果那个error是true,代表的是被标注的该对象,会报错,报的错就是前面那个message。


如果第二个参数写一个false,就只会是警告

************************************************************************
自定义特性的理解
在自定义的类上面要把用途,用法等标明清楚。所以要借助AttributeUsage
举例:定义自定义特性

自定义特性的使用

C#重点语法——特性的更多相关文章
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- 总结常见的ES6新语法特性
前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
- C#新语法特性前瞻
今天逛微软的UserVoice site发现了几个有很有用,也很可能被添加到新版C#中的语法,当然也可能被推迟到下一版,拿出来给大家分享一下. 另外还没投票的可以去为自己最想要的新特性投票,有兴趣的可 ...
- 自己动手为PHP7添加新的语法特性
好文章! nikic介绍了如何向PHP添加新的语法特性,原文写的非常精彩,具体是添加in语法功能,使最终实现: <?php $words = ['hello', 'world', 'foo', ...
- 总结常见的ES6新语法特性。
前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
- atitit.groovy 语法特性
atitit.groovy 语法特性 1. Groovy 1.6概览1 1.1. 多路赋值2 2. 新发布的Groovy2.0为这门语言带来了关键的静态特性:静态类型检查和静态编译:2 3. 参考3 ...
- Atitit.jdk java8的语法特性详解 attilax 总结
Atitit.jdk java8的语法特性详解 attilax 总结 1.1. 类型推断这个特别有趣的.鲜为人知的特性1 2. Lambda1 2.1. 内部迭代意味着改由Java类库来进行迭代,而不 ...
- Delphi 7以来的Delphi 2009测试版新语法特性
我晕,Delphi 7 以后增加了这么多有用的语法,我都不知道.真是越学越觉得自己浅薄,自己所作的Delphi项目所用的知识还不够Delphi知识储备体系的十分之一,更别说Delphi还在继续发展. ...
- WEB学习-HTML的基本语法特性
HTML对换行不敏感,对tab不敏感 HTML只在乎标签的嵌套结构,嵌套的关系.谁嵌套了谁,谁被谁嵌套了,和换行.tab无关. 换不换行.tab不tab,都不影响页面的结构. 所以: • <di ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
随机推荐
- 用python3操作mysql数据库实现企业级产品参数查询
Python3 MySQL 数据库连接 - PyMySQL 驱动 一.什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则 ...
- linux 7.2升级7.3
原文地址: https://www.jianshu.com/p/6a4492a9cd03 检查 PHP 版本 php -v 安装 Remi 和 EPEL 数据源 rpm -Uvh https://dl ...
- 学习lua-01,遍历集合,多入参循环处理,类型判断,数字运算
--function maxnum(tab1) -- local b = 1 -- local a = tab1[b] -- for i, v in ipairs(tab1) do -- if v & ...
- JWT & 用户身份认证演变过程
一.起源 0.HTTP无状态 HTTP是无状态的,服务端和客户端如何保持登录状态? 工程师在服务端搞了亿点事情, 就有了下面的解决方案. 1.session认证 (1)什么是session? 服务器为 ...
- Java-【Arrays类】和【System类】
Arrays类 [基本介绍] JDK中提供了一个专门用于操作数组的工具类,即Arrays类,位于java util 中. 用前需导包:import java.util.Arrays; [常用方法] 返 ...
- Docker学习——Kubernetes(八)
在线阅读:GitBook 下载:pdf Kubernetes 是 Google 团队发起并维护的基于 Docker 的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心. 建于 Doc ...
- Java的访问控制修饰符有哪些?各有什么访问权限?请对照第7页ppt的表格分别写程序验证。
Java的访问控制修饰符有哪些? JAVA主要有两类修饰符: 访问控制修饰符 : default, public , protected, private 非访问控制修饰符 : final, abst ...
- 学习&资源分享
零 方法 1 学校图书馆官网(注意查看学校购买的数据库以及校外访问方法) 2 各省市图书馆官网(注册各地图书馆账号,注册方法见视频01:28) 一 论文 1 知网(图书馆进入) 2 Web of ...
- webpack devserver proxy 配置以及react多页面
github地址: https://github.com/yangstar/React-antd-webpack-dev-server var webpack = require('webpack') ...
- Windows Powershell个性化设置
1. 设置Powershell prompt只显示当前目录: 2. 设置Powershell title为当前路径: 这个文件的路径为:echo $profile # file location:ec ...