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的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
随机推荐
- PostgreSQL Win10 安装、创建表并添加数据(安装细节+常见错误避坑)
1.下载:postgresql-14.5-1-windows-x64.exe 地址:Download PostgreSQL 2.安装: 下一步即可,注意记住期间设置的超级管理员密码和设置的端口号 安装 ...
- 312. 戳气球 (Hard)
问题描述 312. 戳气球 (Hard) 有 n 个气球,编号为 0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.戳破第 i 个气球,你可以获 ...
- ffmpeg将常见视频格式转换为mp4
1,avi.mkv.mp4等格式转为mp4 ffmpeg -i 1.avi -c copy 1.mp4 2,wmv.asf等格式转为mp4 ffmpeg -i 1.asf 1.mp4
- pg的json类型
以下举例说明: postgres=# select '{"b":1,"a":2}'::json; json --------------- {"b&q ...
- Docker部署OpenWRT-旁路由
1.确认网卡名称 命令 ip addr 显示如下图的 enp2s0 就是我们准备进行链接的网卡名称. 2.打开网卡的混杂模式 sudo ip link set enp2s0 promisc on 3. ...
- Object.assign合并多个对象
语法: Object.assign(target, ...sources) target, 目标对象 sources, 源对象 assign函数用来合并多个对象. 该方法会修改第一个对象,函数在最后r ...
- VS2012下没有ADO.NET实体数据模型
在C盘下搜"EFTools.msi"然后退出VS,点击修复在打开VS,数据下就有了
- 脚本安装zabbix
把zabbix.repo上传到 /etc/yum.repo.d/ 如果出现这种情况:yum -y remove httpdyum -y install httpdsystemctl start htt ...
- 给linux串口,增加登录密码
一.密码更改 1.在linux系统上,输入passwd,输入需要设定的密码,密码文件保存在/etc/passwd里面. 2.把/etc/passwd文件拷贝出来,放到rootfs的etc/目录下,实现 ...
- React之一个组件的诞生
此处以input组件为例 input.js import React from 'react' class Input extends React.Component { // ps:使用static ...