C#-特性Attribute的定义、使用及常用特性(不定时更新)

目录

一、 特性的定义及使用

1.自定义特性

2.使用特性

3.查找特性名

4.获取相应对象的特性名

二、常用部分特性


一、 特性的定义及使用

1.自定义特性

全继承自Attribute基类(使用前要给自定义特性赋予相关特性) 

[AttributeUsage(AtrributeTargets.Class|AttributeTargets.Method,AllowMultiple=true,Inherited=true)//AttributeTargets.Class:允许放类上//AllowMultiple:是否允许多个使用(同一个特性)//Inherited:是否允许继承class MyAttribute:Attribute{public MyAtrribute(){}public MyAttribute(String str){}}

2.使用特性

一般放在类、属性、方法。。上方(使用时Attribute可省略)

[My]

[My("name")]

3.查找特性名

自己定义一个类方法用于查找。

public class customtableattribute{static public string GetTableAttribute<T>(T mode) where T:class{ Type type = typeof(T);//获取传入数据类型if (type.IsDefined(typeof(TableAttribute), true))//判断相应特性被使用{var attribute = type.GetCustomAttributes(typeof(TableAttribute), true);//获取TableAttribute特性,true代表允许继承特性的派生类return ((TableAttribute)attribute[0]).TableName;//返回特性名}else {return type.Name;}}}

4.获取相应对象的特性名

string str= customtableattribute.GetTableAttribute(student);

二、常用部分特性

 [Key]//说明这个属性是主键virtual public int Id { get; set; }[StringLength(maximumLength:50,MinimumLength =2)]//字符串长度public string Name { get; set; }[EmailAddress]//识别邮箱格式public string Email { get; set; }[Required]//属性不能为空public string Description { get; set; }[Display(Name="电话号码")]//显示字段别名public string PhoneNumber { get; set; }
[StructLayout(LayoutKind.Auto)]

一般用于结构体,告诉运行时自动选择最合适的结构体布局方式,以在不同平台上获得最佳性能和互操作性,并使代码更具灵活性。

[MethodImpl(MethodImplOptions.AggressiveInlining)]

一般用于方法,指示编译器在调用方法时进行积极的内联优化(调用方法的地方替换为目标方法的代码),以提高程序的性能。

[StackTraceHidden]

一般用于方法,指示编译器在生成堆栈跟踪信息时隐藏标记了该属性的方法,以提高代码的安全性和可读性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/776264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL执行计划分析实战:从实例场景出发深度解读各项参数与分析步骤

引言&#xff1a; 在MySQL数据库优化中&#xff0c;理解和分析SQL执行计划是一项至关重要的技能。通过执行计划&#xff0c;我们可以洞察MySQL如何执行SQL查询&#xff0c;以及它选择索引、决定查询顺序和计算行数的方式。本文将通过一个实例场景&#xff0c;详细阐述MySQL执行…

浅模仿小米商城布局(有微调)

CSS文件 *{margin: 0;padding: 0;box-sizing: border-box; }div[class^"h"]{height: 40px; } div[class^"s"]{height: 100px; } .h1{width: 1528px;background-color: green; } .h11{background-color:rgb(8, 220, 8); } .h111{width: 683px;background-c…

ITSS评估过程

基于ITSS标准与《信息技术服务 运行维护 第1部分&#xff1a;通用要求》标准&#xff0c;建立和实施合适企业自身业务需要、同时符合《信息技术服务 运行维护 第1部分&#xff1a;通用要求》标准的服务管理体系&#xff0c;并满足《信息技术服务 运行维护 第1部分&#xff1a;通…

记录服务器被挖矿程序到账cpu爆满(治标不治本)

被入侵&#xff0c;要么是密码泄露&#xff0c;要么是端口攻击。 1.执行top命令。找到进程占用cpu爆满的pid &#xff0c;然后kill -9 pid。 2.写定时任务执行脚本监测删除 建立清理挖矿脚本文件 #清理挖矿脚本_1: kill_xmrig.shfind / -name "*xmrig*" -exec rm…

【差分约束+并查集】第十三届蓝桥杯省赛C++ A组 Java A组/研究生组《推导部分和》(C++)

【题目描述】 【输入格式】 【输出格式】 【数据范围】 【输入样例】 5 3 3 1 5 15 4 5 9 2 3 5 1 5 1 3 1 2 【输出样例】 15 6 UNKNOWN 【思路】 题解来源&#xff1a;AcWing 4651. $\Huge\color{gold}{推导部分和}$ - AcWing 【代码】 #include<bits/stdc.h> #define…

PostgreSQL FDW(外部表) 简介

1、FDW: 外部表 背景 提供外部数据源的透明访问机制。PostgreSQL fdw(Foreign Data Wrapper)是一种外部访问接口,可以在PG数据库中创建外部表,用户访问的时候与访问本地表的方法一样,支持增删改查。 而数据则是存储在外部,外部可以是一个远程的pg数据库或者其他数据库(…

DateFormat类和SimpleDateFormat类

DateFormat类的作用&#xff1a; 把时间对象转化成指定格式的字符串。反之&#xff0c;把指定格式的字符串转化成时间对象。DateFormat是一个抽象类&#xff0c;一般使用它的子类SimpleFateFormat类来实现。 DateFormat类和SimpleDateFormat类的使用&#xff1a; import java…

一文读懂java的dto、dao、vo、bo、do、po、pojo

一句话导读 在java编程中我们常常需要做数据交换&#xff0c;那么在数据交换过程中就需要使用到实体对象&#xff0c;这就不可避免的使用到vo、dto、po等实体对象&#xff0c;在java中都属于pojo的范畴&#xff0c;至少在不同场景下使用所表达的含义不同&#xff0c;其中常用的…

ConvE算法模型

1.介绍 ConvE 是一种用于知识图谱表示学习的深度学习模型。它是一种基于卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;的模型&#xff0c;用于将实体和关系映射到低维空间中的向量表示。 ConvE 模型的主要思想是将实体和关系表示为低维向…

基于java+springboot+vue实现的成都旅游网系统(文末源码+Lw+ppt)23-358

摘 要 人类现已迈入二十一世纪&#xff0c;科学技术日新月异&#xff0c;经济、资讯等各方面都有了非常大的进步&#xff0c;尤其是资讯与网络技术的飞速发展&#xff0c;对政治、经济、军事、文化等各方面都有了极大的影响。 利用电脑网络的这些便利&#xff0c;发展一套成…

代码随想录算法训练营Day60 ||leetCode 84.柱状图中最大的矩形

84.柱状图中最大的矩形 这题和接雨水的题有些像&#xff0c;只不过此处使用的是递增栈&#xff0c;因为矩形的面积想要增加宽度时&#xff0c;需要考虑两边最低的矩形&#xff0c;而为了让所有数据都参加运算&#xff0c;需要前后补0&#xff0c;来弹出栈里所有元素 class Sol…

15 Games101 - 笔记 - 光线追踪(辐射度量学、BRDF与渲染方程)

15 光线追踪&#xff08;辐射度量学、BRDF与渲染方程&#xff09; 基于物理渲染的基础知识 摘要 本篇文章将会从基于物理渲染(PBR)的动机开始讲起&#xff0c;逐步介绍PBR相关的基础知识&#xff0c;如辐射度量学(怎么用物理量精确的描述光线)&#xff0c;以及通过辐射度量学…

MySQL高阶SQL语句

文章目录 MySQL高阶SQL语句MySQL常用查询1、按关键字排序1.1 语法1.2 ASC和DESC1.3 对数据表中信息进行排序1.3.1 普通排序1.3.2 结合where进行条件过滤1.3.3 对多个字段进行排序 2、区间判断及查询不重复记录2.1 and/or —— 且/或2.1.1 普通查询2.1.2 嵌套/多条件查询 2.2 di…

Chinese-LLaMA-Alpaca-2模型量化部署测试

简介 Chinese-LLaMA-Alpaca-2基于Meta发布的可商用大模型Llama-2开发, 是中文LLaMA&Alpaca大模型的第二期项目. 量化 模型的下载还是应用脚本 bash hfd.sh hfl/chinese-alpaca-2-13b --tool aria2c -x 8应用llama.cpp进行量化, 主要参考该教程. 其中比较折腾的是与BLAS…

在Vue中创建生产和开发环境

官方文档参考&#xff1a;模式和环境变量 | Vue CLI 在Vue中创建生产和开发环境配置&#xff0c;通常是通过环境变量和Webpack的模式来区分。 1.在项目根目录下创建.env文件&#xff0c;用于通用配置。 # .env VUE_APP_API_URLhttps://api.example.com 2.创建一个.env.deve…

FPGA工程师面试时会被HR问到的问题(3)

FPGA工程师面试时会被HR问到的问题&#xff08;3&#xff09; 面试具体问题集锦第三弹来啦&#xff0c;小伙伴们码住&#xff01; 1、你通常如何对待别人的批评&#xff1f; 回答提示&#xff1a;①沈默是金&#xff0c;不必说什么&#xff0c;否则情况更糟&#xff0c;不过…

OD C卷 - 反射计数

反射计数&#xff08;200&#xff09; 给定一个包含0 、1的二维矩阵&#xff1b;一个物体从给定的初始位置出发&#xff0c;在给定的速度下移动&#xff0c;遇到矩阵的边缘则发生镜面反射&#xff0c;无论物体经过0还是1&#xff0c;都不影响其速度&#xff1b;经过t时间单位后…

【unity】如何汉化unity编译器

在【unity】如何汉化unity Hub这篇文章中&#xff0c;我们已经完成了unity Hub的汉化&#xff0c;现在让我们对unity Hub安装的编译器也进行下汉化处理。 第一步&#xff1a;在unity Hub软件左侧栏目中点击安装&#xff0c;选择需要汉化的编译器&#xff0c;再点击设置图片按钮…

集中监控:网络设备、安全设备、服务器以及各类业务系统一体化运维

一、项目背景和目标 随着企业信息化建设的不断深入&#xff0c;网络设备、安全防护设备、服务器以及各类业务系统的数量和复杂性日益增加&#xff0c;传统的运维方式已无法满足企业对效率、安全和稳定性的需求。因此&#xff0c;本方案旨在为企业构建一套运维一体化管理平台&am…

Jmeter基础篇(18)压测过程中的注意事项

一、测试计划设计&#xff1a; 1、场景设计&#xff1a;需要基于实际业务需求设计合理的并发用户模型、事务和思考时间&#xff0c;模拟真实用户的操作行为。 2、目标明确&#xff1a;定义明确的性能指标&#xff08;如响应时间、吞吐量、并发用户数、错误率等&#xff09;和性…